求大佬解一下这两道C语言的题

JOKERCDD 2019-12-29 07:19:20
定义的数组指针不是指向一维数组吗,然后这两道题都把二维数组的地址给了指针,求解
...全文
44 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
遇见女神 2019-12-29
  • 打赏
  • 举报
回复
int (*p)[5]; 声明p作为指向由5个整数组成的数组的指针。 如果取消引用p会发生什么? 你会得到5个整数组成的数组。 即相当于int arr[5]=p[0]。
@矛盾综合体 2019-12-29
  • 打赏
  • 举报
回复
首先第一个,这是一个数组指针,嗯,指向一个int [5]类型的数组,ps=s,等价于ps=&s[0],也就是s的首地址,不过一个步长是int [5] ps+1=&s[0]+1=&s[1],是地址不是内容。 *(ps+3)=*(&s[0]+3)=*(&s[3])=s[3]=&s[3][0],是地址不是内容。 ps[0][2],首先来看一下,ps=s,等价于ps=&s[0],ps[0]=&s[0][0],ps[0][2]=s[0][2] *(ps+1)+3=*(&s[0]+1)+3=*(&s[1])+3=s[1]+3=&s[1][0]+3=&s[1][3],是地址不是内容。 下面的一样

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧