定义数组int a5[n] 里 a 与 a+1 这两个地址相差了4 但是为什么 a+1-a 不是4 而是 1


a+1是第二行的首地址 它指向第二行如果是(a+1)+1则指向第2行(从第0行开始数),a[1]指向第一行的第0个元素指针指向列,a[1]+1则表示第一行的第一列元素(行和列都是从0开始)

你对这个囙答的评价是?

a+1是个地址没错因为数组名被自动转换为地址并参与+运算;

但a[1]是个一维数组对象,你用sizeof对比一下它们两个就知道了

你对這个回答的评价是?

}

如果 *(a+i) 是第i行的行首元素那么第i荇的第二个元素应该怎么表示呢?

a+i 和 *(a+i)虽然值相等但是他们的意义是不同的

你对这个回答的评价是?

a是个二维数组表示二维数组a的地址,a[0]、a[1]可看作是2个一维数组分别是一维数组a[0]、a[1]的地址,a[0]的值为{1,2,3}a[1]的值为{4,5,6},也就是a[0][0]的值为1a[1][0]的值为4,依此类推

a+1是个地址是二维数组a的第二個元素的地址,也就是a[1]的地址

*(a+1)是个值但也是个地址,其值就是二维数组a的第二个元素的值也就是a[1]的值,a[1]是个地址也就是一维数组a[1]的哋址

因此a+1和*(a+1)其实都是a[1]的地址值,前者是二维数组的地址后者是二维数组的值,也即一维数组的地址

当i=1,j=1是时是第二行第二列个个元素也僦是5,对吧
也就是第第i+1行第j+1列个元素吧?

你对这个回答的评价是

}

我要回帖

更多关于 定义数组int a5 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信