现在有一个二维数组
int array[2][[3]
int *ptr=array[0]
这里的ptr是指什么呢,array的第一行的第一个数组吗,即array[0][0]吗?
还是指array的第一行呢?那它的地址打印出来又是多少呢
二维数组的地方不理解?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
QJ敬 2023-05-03 11:25关注*ptr才是array[0][0],其实二维也是一维,只不过是一维的元素是数组罢了。
ptr是int型指针,由于赋值要两边类型一样。所以后边的数组名array[0]相当于指针常量,指向数组第一个元素,即&array[0][0]。
数组array[0],里面有三个元素,array[0][0],array[0][1],array[0][2]。第一个元素就是array[0][0]。
如果ptr+1,那它就加了1个sizeof(*ptr)自身类型的字节,也就是一个int,会指向array[0][1]。
如果要指向第一行你应该这样赋值int (*ptr)[3]=array。那么array相当于&array[0],里面有三个元素。是个行指针。ptr是一个数组指针,指向一个有3个int元素的数组。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录