主题:求大侠 解释下运行过程
邪恶天蝎
[专家分:0] 发布于 2011-03-10 23:09:00
#include <stdio.h>
main()
{ int a[5]={2,4,6,8,10},*p,**k;
p=a;k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
}
回复列表 (共4个回复)
沙发
hereforc [专家分:210] 发布于 2011-03-11 00:28:00
p是指向数组的指针 k是指向指针p的指针 也就是说k存放的p的地址 printf("%d",*(p++))输出数组的首个元素为2 由于p++ p的指向向后移动了一个单位 那printf("%d\n",**k)输出数组第二个元素4
板凳
Long1220 [专家分:0] 发布于 2011-03-11 10:35:00
**k
这怎么理解啊
3 楼
邪恶天蝎 [专家分:0] 发布于 2011-03-12 00:17:00
可以讲解详细点不
4 楼
470012521 [专家分:10] 发布于 2011-03-12 00:51:00
**k二维指针,就是指向指针的指针。
*p是指针(自己有个地址&p),又存放一个变量地址(就是指向一个地址)
**k(自己也有个地址&k),又存放了一个指针的地址(就是指向一个指针地址这里这是指向&p)
我来回复