在下列情况下,为什么结构地址在赋值后不等于

ano*_*ous -1 c struct pointers

#include <stdio.h>


int main() {
    struct my_structure {
        char name[20];
        int number;
        int rank;
    };

    struct my_structure var = {"Stud", 35, 1};
    struct my_structure *ptr;
    ptr = &var;

    printf("%p ", &var);
    printf("\n");
    printf("%p ", &ptr);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

代码在c99下编译.ptr不等于var.为什么?


0x7ffeea577988


0x7ffeea577978

Som*_*ude 8

printf("%p ", &ptr);
Run Code Online (Sandbox Code Playgroud)

你不打印ptr指向的位置,你打印ptr变量的位置.

如果你想要两个printf调用打印相同的东西,你不应该使用address-of运算符:

printf("%p ", ptr);
Run Code Online (Sandbox Code Playgroud)