(*(p+i))[j]什么意思啊

如题所述

是二维数组的指针定义方式。假设该数组为a,p指向该数组的a【0】【0】,*p表示取该行的值。p+i表示指针移动了i个位置,即此时p指向a【i】【0】,*(p+i)表示取第i行的值,*(p+i)【j】则指定了取出第i行第j个数值。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-20
这个代表的是二维数组,相当于a[i,j]
求采纳!

(*(p+i))[j]什么意思啊
是二维数组的指针定义方式。假设该数组为a,p指向该数组的a【0】【0】,*p表示取该行的值。p+i表示指针移动了i个位置,即此时p指向a【i】【0】,*(p+i)表示取第i行的值,*(p+i)【j】则指定了取出第i行第j个数值。

看倒数第5行,“*(*(p+i)+j)”我看不懂啊,求解释一下
(p+i)+j是第i行第j列元素的地址。(*(p+i)+j)是第i行第j列元素所对应的值。

*(*(p+i)+j)怎么解释? p是指针 p+i 就应该是指向下个元素的首地址 那么...
p+i表示指向第i行,*(p+i)是第i行的首地址,*(p+i)+j表示的就是指向第i行第j列的地址,*(*(p+i)+j)就是第第i行第j列的元素值了

scanf("%d",(*(p+i))+j)什么意思
(p+i)就是p[i]也就是二维数组p第i行的首地址 这个是int*型 这样 (p+i))+j 就是第i行 第j个元素的地址 等效于 &p[i][j]

C语言(*(*p+i))是什么意思
p应该是指向二维数组的首地址 (*(*p+i))代表的是第一行第i列的值

*(*(p+i)+j)
定义二维数组:int a[i][j];定义一个指针:int *p;p=a;p+i:是第i行的首地址.(p+i)是第i行第0列元素的地址.(p+i)+j是第i行第j列元素的地址.(*(p+i)+j)是第i行第j列元素所对应的值.

C语言 指针*(p+i)是什么意思
"*"运算符称为指针运算符,在定义指针的时候表示指向,在使用指针运算的时候表示取该指针对应的值(而不是地址,是地址对应的值)所以*(p+i)表示的就是地址(p+i)所对应的值。

p++是什么意思, p+ i+ j是什么意思?
p++ 就是把 p里面的内容+1个单位,因为 p存的是地址,所以是 地址+1,也就是下一个地址。而*p 是 取内容的意思,即 取当前存放内容对应(指向)的地址 里面的内容。p是指针,*(p+i)+j是指向二维数组第i行第j个元素的。变量q的值是变量b的地址。

c语言中,数组的指针问题。
2 你的意思是说 p+i是第i行的首地址,然后取* ,就得到了内容, 是吧?p+i 是行地址,取* 就变成了列地址,所以它还是指向第i行的列地址,而a(也就是p),它是行地址,,只有对列地址取* 才会成为具体的元素值。例如*(*(p+i)+j) p是行地址,p+i还是行地址,取* 就变成了列...

*p+i和*(p+i)有什么区别啊?新人求解……
p如果是数组的指针,指向的是数组的第一个元素,也就是说p就是第一个元素的地址,因此以为数组里面*p代表第一个元素的值,*p+i 代表第一个元素的值+i,而*(p+i)代表数组的第i个元素的值。二维数组里面*p指向这个二维数组的第一个一维数组,*p+i 就是把这个地址偏移i;(p+i)是指向二维数组的...

相似回答