...指针中为什么是*(p+1)+2而不是(p+1)+2表示数组a第一行第二列的...
发布网友
发布时间:2024-04-02 05:01
我来回答
共2个回答
热心网友
时间:2024-07-22 00:01
若定义数组
int a[3][4],*p=a[0];
将二维数组看成是一维数组,即 a[3]这个部分为一维数组的数组名,[4]这部分看成为一维数组的元素个数。这样就有数组名为a[0]的一维数组,其元素为a[0][0],a[0][1]……等等。
而*(p+0)就是a[0],且是个地址,代表理解上的一维数组名。*(p+1)也是地址,是a[1],a[1]+2就肯定是地址了,即*(p+1)+2一定是地址,*(*(p+1)+2)是a[1][2]元素。(p+1)+2肯定不是正确表示这一元素的地址了。
热心网友
时间:2024-07-22 00:03
能否来个你现在的代码,详细给你讲讲~