00问答网
所有问题
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://00.wendadaohang.com/zd/rTeZIjnBj.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。如有疑问,请追问。
*p+
i和
*(p+i)
有
什么
区别啊?新人
求解
……
答:
p
如果是
数组的指针,指向的是数组的第一个元素,也就是说p就是第一个元素的地址,因此以为数组里面*p代表第一个元素的值
,*p+
i 代表第一个元素的值+i,而
*(p+i)
代表数组的第i个元素的值。二维数组里面*p指向这个二维数组的第一个一维数组,*p+i 就是把这个地址偏移i;(p+i)是指向二维数组的...
C语言
动态分配二维数组问题
答:
当然
,如果
只是做赋值操作,这两句完全可以说是等价的。但是,在楼主的程序里面
,这个p
的指针则是要作为返回值的。自加之后的指针,也就是做了*p++操作后的的首地址,自然已经变成自加之后的了。而做
*(p+i)
后,p指针的首地址并没有发生变化。所以,在返回的时候
,*p++
的地址已经不是我们所期望的...
初学者
,C语言
程序的问题
求解
惑。
答:
include <stdio.h>void fun ( int a[][3], int b[][3]){int
(*p)[3],i,j
;//p=a; 这里错了!!! p=b;for
(i
=0;i<3;
i++)
for (j=0;j<3;j++) p[
i]
[j]=a[j][i];}main( ) /* 主程序 */{ int a[3][3] = {{1, 2, 3}, {4, 5, 6...
大家正在搜
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;...