腾讯频道 - C语言/C++编程初学者 - 有大佬可以帮我看下吗,打印的值似乎不是预期的值,我...
有大佬可以帮我看下吗,打印的值似乎不是预期的值,我会在下面简单的描述下我的程序 #include "stdio.h" int main() { int a[] = {0,1,2,3,4,5,6,7,8,9}; int* p = a; int** ip = &p; int*** ip2 = &ip; printf("数组a的首地址为%p\n", p); printf("数组中第二个值为%d\n",*(p+1)); printf("数组a的首地址为%p\n", a); printf("数组中第二个值为%d\n", a[1]); printf("ip的地址为%p\n",&ip); printf("ip指向的地址为%p\n",*ip); printf("ip指向的地址的值为%d\n",**ip); printf("ip2的地址为%p\n",&ip2); printf("ip2指向的地址为%p\n",*ip2); printf("ip2指向的指针指向的地址为%p\n", **ip2); printf("ip2指向的指针指向的地址中的值为%d\n",***ip2); } 在上面的程序中我定义了一个数组a,并且将a的首地址装入了一个名为p的int*变量中,接着我又把指针变量p的地址装入了名为ip的int**类型变量中,然后我把二级指针变量ip的地址装入了名为ip2的int***类型变量中,如果我执行printf("数组a的首地址为%p\n", p);将会打印数组a的首地址,如果我执行printf("ip的地址为%p\n",&ip);应该会打印二级指针的地址,如果我执行printf("ip2的地址为%p\n",&ip2);将会打印三级指针的地址。如果我执行printf("ip2指向的地址为%p\n",*ip2);将会打印三级指针所指向的指针的地址。程序执行结束后,变量都有了图中的赋值,但是打印的结果并不和图中的地址值对应。
2024-06-09
浏览644
🚩贴吧 | C语言
登录后评论
评论
分享