发布网友 发布时间:2023-05-04 04:50
共4个回答
热心网友 时间:2023-10-25 01:25
因为它是二维数组不是一维数组!二维数组定义了:int a[m][n],脚标从0开始,那么a[m]也就是第m-1行的第一个元素,相当于a[m][0],但是你不能直接*a[m]来输出那个值,你必须要*a[m][0],才能输出那个值!因为C语言语法规定了,对于二维数组,*a[m]这种写法表示指针指向第m-1行,而不是取值,然后*a[m]+5 是代表在第m-1行中,取第5列的数值,这时,热心网友 时间:2023-10-25 01:25
数组名是指向第一个元素的指针,matrix第一个元素是什么?由于是二维数组,所以可以看作是整个第一行,所以matrix指向第一行,+1后指向第二行
*(matrix+1)就得到第二行这个一维数组,一维数组名指向第一个元素,所以*(matrix+1)指向第一个元素,+5后指向第六个元素
希望能帮到你!不懂在问吧
热心网友 时间:2023-10-25 01:26
二维数组的数组名和一维数组的数组名一样,都是表示数组中首个元素的地址。而二维数组可理解成每个元素都是一维数组的一维数组,因此 matrix + 1 就表示跳一行,即跳到第二个元素,就是第二行,再 + 5 就是跳到第六个元素。热心网友 时间:2023-10-25 01:26
*(matrix+1)得到第二行首元素的地址,比如