学弟学习c语言时,总是搞不明白变量、指针的值和地址的关系。写的时候,总遇到问题。
这里写了个例子,输出相关变量、指针的值和地址。
#include <stdio.h>
int main()
{
int a = 9;
int* b = &a;
int** c = &b;
printf("a value %d\n", a);
printf("*b value %d\n", *b);
printf("**c value %d\n", **c);
printf("a adress %p\n", &a);
printf("b value %p\n", b);
printf("b adress %p\n", &b);
printf("*b value %p\n", *b);
printf("c value %p\n", c);
printf("c adress %p\n", &c);
printf("*c value %p\n", *c);
printf("**c value %p\n", **c);
}
这里附上我的运行结果:
a value 9
*b value 9
**c value 9
a adress 000000ae0c3ff6ac
b value 000000ae0c3ff6ac
b adress 000000ae0c3ff6a0
*b value 0000000000000009
c value 000000ae0c3ff6a0
c adress 000000ae0c3ff698
*c value 000000ae0c3ff6ac
**c value 0000000000000009
学习编程有疑问时,最好的方法是你把他敲出来,不停的运行和调试,运行调试的过程中你就渐渐明白了。别问我怎么知道的。