C语言中如何用指针运算符来表示一个二维数组的元素及地址?

2024-12-01 18:24:59
推荐回答(2个)
回答1:

二维指针,就是说第一维是指针,第二维还是指针;
拿*(*(a+i)+j)来说:a是数组的首地址吧,然后+i,就是说a地址向后偏移i位。就是a+i的地址了,注意,这里a+i只是地址,用*符号取出该地址的数据,就是*(a+i),这里*(a+i)就是第一维指针,它指的是地址,不是数据。
而且后面的*(a+i)+j就是说以*(a+i)为首地址,偏移j位,然后使用*取内容,这里就是第二维了,取到的数据就是实际数据了

回答2:

1.int
(*p)[4],表示定义一个数组指针。例:int
(*p)[10];
p即为指向数组的指针,又称数组指针。数组指针是指向数组首元素的地址的指针,其本质为指针;指针数组是数组元素为指针的数组(例如
int
*p[3],定义了p[0],p[1],p[2]三个指针),其本质为数组。数组指针的使用在某些情况下与指针数组很相似,要注意区别。
2.*(p+i)=a[i]
3.*(*(p+i)+c)=a[i][c]
4.这个程序的结果为:
3
5
7
要注意“\n”表示换行
呵呵,希望对你有帮助