求解一道题,关于指针的
#include <stdio.h>
void main()
{
static int a[] = {2, 4, 6, 8, 10}, *p, **k;
p = a;
k=&p;
printf( "%d\n ", **k);
}
如何求输出结果?求解
[解决办法]
**k ==>
*p ==>
a[0]
故输出2
[解决办法]
可以这么想,p里保存的是a数组的首地址,也是第一个数据的地址,k里保存的是p的地址,
所以:
k是p的地址,
*k是p的值,也就是a数组的第一个数据的地址,
**k就是a数组的第一个数据的值,就是2.