雪傲天1 2023-05-03 10:40 采纳率: 96.2%
浏览 14
已结题

二维数组的地方不理解?


现在有一个二维数组
int array[2][[3]
int *ptr=array[0]
这里的ptr是指什么呢,array的第一行的第一个数组吗,即array[0][0]吗?
还是指array的第一行呢?那它的地址打印出来又是多少呢
  • 写回答

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元素的数组。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月13日
  • 已采纳回答 5月5日
  • 创建了问题 5月3日