我试图了解 和 之间的区别int a
,int *a
我的第一步是查看我可以通过 printi 获得的值%p
an int a
。当然,编译器会显示警告,但确实完成了以下代码的工作。
#include <stdio.h>
int main() {
int a;
printf("a - declared");
printf("int a = [%d]\n", a); // example - 1745899614
printf("int a pointer = [%p]\n", a); // example - 0x6810505e
a = 10;
printf("a - initialized to value of 10\n");
printf("int a = [%d]\n", a); // exmaple - 10
printf("int a pointer = [%p]\n", a); // example - 0xa
return 0;
}
正如我在源代码中提到的那样,我确实得到了一个有点令人满意的结果,0xa
它等于an10
的值的十六进制。但实际上是指向该地址的情况,还是只是编译器试图在这种情况下理解?%p
int a
int
%p
给 s分配的内存在哪里int
?我该如何测试呢?