C语言**p 指向指针的指针

Python013

C语言**p 指向指针的指针,第1张

1,char *name[2]={&a,&b}改为char *name[2]={a,b} ,因为a、b已经代表着地址了,而*name【】代表着指针的指针,存储的应该是指针;

2,printf("%s\n",**p),改为printf("%s\n",*p) *p代表着地址,按输出格式应该是给出地址的

3,字符串结束符\0

int a[5]={2,4,6,8,10},*p,**k

p=a//p指向a数组,p保存了a数组的首地址。a[0]是数组的首元素,所以*p的值就是a[0]的值。

k=&p//k指针指向p,k保存了p的地址。(k可以成为指针的指针)

printf("%d",*(p++))//表达式“*(p++)”整体的值相当于*p的值,就是a[0]的值。

printf("%d\n",**k)//上面语句"*(p++)"已经使指针p往后以一个位置,即此时p指针指向a[1],保存了a[1]的地址。*p就是a[1]的值为4.

//k指针指向p,k保存了p的地址,*k就是指针p保存的值,即a数组的首地址。所以**k就是*p的值,即a[1]的值为4

结果24 是2 和 4的 组合而成的..