C语言数组问题

黑暗中耕耘 2019-09-11 03:49:07
数组 a只可以放5个元素怎么花括号中有这么多,那些 a+1, a+2是什么意思
...全文
217 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_肆 2019-09-12
  • 打赏
  • 举报
回复
如果是int a[4],那就是四个int值,如果是struct tt a[4],那就是四个tt,每个a[]是一个tt,每个tt里有两个参数(x和y),所以给a初始化赋值的时候就有八个值,两个一组对应a[0] a[1] a[2] a[3]。至于给a[]的y赋值时的a+n,代表的是一个地址值,a就是a[0]的地址,a+1是a[1]的地址。。当调用->y的时候,其实求是让前者指向后者,整个程序类似写了个循环链表
自信男孩 2019-09-11
  • 打赏
  • 举报
回复
a是结构体数组,结构体有两个元素一个是x,一个是指针y,所以20是对应x,a+1是对应y;
即y = a+1;即a[0].y = a+1;即y指向a[1]
gouyanfen 2019-09-11
  • 打赏
  • 举报
回复
struct tt a;a[4]是一个结构数组,结构中每个有两个元素x,*y,大括号中初始化,按顺序就需要有8个初始化的内容分对应a[0]={20,a+1},a[1]={15,a+2}..... a值是结构数组的头地址,也就是指向a[0],a+1相当于(&a[0]+sizeof(tt)*1)指向a[1]的指针.
Mapleas 2019-09-11
  • 打赏
  • 举报
回复
这是结构体数组的初始化,每个结构体有2个数据,每2个数据对应一个结构体元素的初始化. a+1,a+2是指针+1,,a+1指向a[1]这个数据

70,022

社区成员

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

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