11问答网
所有问题
c语言中如(*P)[3]如果出现这*(*(P+i)+j)两个*是什么意思啊,求解啊
如题所述
举报该问题
推荐答案 推荐于2017-12-16
p为指向3个元素的一维数组的指针
p+i表示第i个包含3个元素的一维数组的首地址
*(p+i),对p+i解引用,得到p+i的内容,为一维数组p+i的首元素的首地址
*(p+i)+j,一维数组p+i的第j个元素的地址
*(*(p+i)+j),一维数组p+i的第j个元素的内容
如果p指向一个
二维数组
a[i][j],那么*(*(p+i)+j)等价于a[i][j]
追问
不是吧,p+i表示第i个包含3个元素的一维数组的首地址
那么*(p+i)不就是取该首地址的值吗
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://11.wendadaohang.com/zd/87vSM2Pq2.html
其他回答
第1个回答 2012-02-29
我们这样来看
int arr[3] 这是一个大小为3的整型数组
那么
int (*p)[3] 这就是一个指向上述数组的指针
所以p+i也是一个指向上述数组的指针,即 *(p+i) 和上述数组是同类型的
那么 *(p+i)+ j 你就可以看成是 arr + j 了,就是指向上述数组第j个位子的指针,接着就是*号取值了
第2个回答 2012-03-01
//举例说明。
int a[2][3]={1,2,3,4,5,6};
int (*p)[3]=a; //p的类型与a相同,这儿表示p指向数组第一行。
printf("%d\n",*(*(p+1)+1)); //*(*(p+1)+1)等价于a[1][1],这儿的值为5。
相似回答
c语言中如(*P)[3]如果出现这*(*(P+i)+j)两个*是什么意思啊,求解啊
答:
int
(*p)[3]
=a;//p的类型与a相同,这儿表示p指向数组第一行。printf("%d\n"
,*(*(p+
1)+1));//*(*(p+1)+1)等价于a[1][1],这儿的值为5。如有疑问,请追问。
大家正在搜
c语言中\0是什么意思
c语言中!什么意思
c语言中%o什么意思
c语言中0和1代表什么
eof在c语言中表示什么
c语言!是什么
c语言中?:怎么用
c语言中或怎么表示
c语言中%s和%c
相关问题
c语言中如(*P)[3]如果出现这*(*(P+i)+j)两个...
*(p+i)+j. 是什么意思啊 求解!!
&p 和&p[i]这两个C语言符号有什么区别?(求解)
C语言程序填空问题~高分速求解~~!
以上是对图像的椒盐噪声处理,在p_temp[j*wide+i...
求解C语言: 在C语言中&表示什么意思啊,希望你可以随便的举...
int i=1,j=2,*p,*q; p=&i; q=&j;...