c语言中*(*(p+1)+2) 什么意思?具体怎么表示的?

如题所述

以这种写法来看 p至少是**型 即指向指针的指针
比如int **
这句话代表的含义是
对p右移一个单位
取值
对该值所代表的地址右移2个单位
对该地址取值

指针移动若干个单位,所增加的地址值取决于指针的类型
通用公式为 T *p; p+n = p的值+ n*(sizeof(T))
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-23
这个在二维数组里面很常见,比如说一个二维数组是
int a[2][3] ;
int (*p)[3] = a;
那么*(*(p +1)+ 2)
先是*(p+1)表示a[1]
然后*(p +1)+ 2表示&a[1][2]
所以*(*(p +1)+ 2)表示a[1][2]
中结如下
行地址:a+1 &a[1] &&a[1][0]
列地址:a[1] a[1]+0 *(a+1) *(a+1) +0 &a[1][0]
元素值:a[1][1] *(*(a+1)+1) *(a[1]+1)
第2个回答  2014-01-22
举例:int p[2][3];这是个二维数组2行3列,而用指针形式*(*(p+1)+2)表示的是p[1][2]这个元素,即:*(p+1)指向的是第一行(p[1]),*(p+1)+2表示的是第一行第二列的地址,而*(*(p+1)+2)就是取第一行第二列的内容也就是p[1][2]这个元素
第3个回答  2014-01-23
*是解指符号;

用了两次**,p至少是指针的指针;
第4个回答  2014-01-23
就是p[1][2]
相似回答