C语言中struct类型的内存和地址?

Memory and adress of struct type in C Language?

1.background 2.Test代码
// @compiler: gcc
// @machine: x64 Windows
#include <stdio.h>

struct IntNode {
    int integer;
    struct IntNode * next;
};

int main() {
    struct IntNode ints_list = {0, 0};
    printf("size of IntNode: %d\n", sizeof(struct IntNode));
    printf("Address of ints_list         : %p\n",  ints_list);         // 000000000061FE00
    printf("Address of &ints_list        : %p\n", &ints_list);         // 000000000061FE10
    printf("Address of &ints_list.integer: %p\n", &ints_list.integer); // 000000000061FE10
    printf("Address of &ints_list.next   : %p\n", &ints_list.next);    // 000000000061FE18
}
3.Picture

3.question

ints_list 不是结构的地址,&ints_list 是 - 您的第一个 printf 调用未定义的行为。

structs 可以按值传递,并且将一个伪装成指针传递给 printf(根本不知道应该如何打印您的结构)会产生垃圾输出。