用指针访问结构数组

本文介绍了如何在C语言中通过指针访问结构数组。声明了一个包含30个元素的结构数组stu,然后定义一个结构指针p指向其首元素。通过p->name可以访问结构成员,p+1则指向下一个元素。文章还展示了如何用for循环遍历并输出所有结构数组的元素。
摘要由CSDN通过智能技术生成

前面我们已经学习过结构指针和结构数组的概念,我们知道可以用指针访问和引用数组,由此可知也可以用指针访问结构数组。即一个指针变量可以访问普通的数组,也可以访问结构数组。

typedef struct student 
{
   char ID[10];
   char name;
   char sex;
   float score;
}STUDENT;
STUDENT stu[30] = {
   {"202001","张三",'M',85},
   {"202002","李四",'M',90},
   {"202003","王五",'M',95},
   {"202004","赵六",'F',100}
                   };

如上述程序,已经声明了一个具有30个元素的结构数组stu,则定义一个结构指针p并将其指向结构数组stu首元素的方法为:STUDENT *p = stu;或者STUDENT *p; p = &stu[0];//p保存的是stu[0]的地址,故p指向stu的第一个元素stu[0]的首地址。因此,可以用指向运算符来引用此结构成员。p->name即stu[0].name,而p+1指向stu[1],以此类推。

如果p的初值为指向数组的首元素,则p增1后p指向下一个元素的起始地址

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值