c语言之指针指向结构体数组

在c语言中,指针指向结构体数组的方法是

在定义一个结构体数组之后,定义一个结构体指针

通过数组地址增减来控制在哪个数组元素

示例代码如下

cpp 复制代码
#include<stdio.h>
int main()
{
	struct test
	{
	char name[30];
	int age;
	char sex;
	int student_number;
	} student[3];
	struct test *p;

	for(p=student;p<student+3;p++)
	{
		printf("请输入姓名 年龄 性别 学号:");
		scanf("%s %d %c %d",p->name,&(p->age),&(p->sex),&(p->student_number));
	}
	for(p=student;p<student+3;p++)
		printf("姓名:%s\t 年龄:%d\t 性别:%c\t 学号:%d\n",p->name,p->age,p->sex,p->student_number);

	return 0;
}

首先是定义一个结构体数组student[3]

用一个for循环不断输入信息

for(p=student;p<student+3;p++)

{

printf("请输入姓名 年龄 性别 学号:");

scanf("%s %d %c %d",p->name,&(p->age),&(p->sex),&(p->student_number));

}

指针p指向数组student的第一个地址,然后p的值小于student数组的第四个地址时,p的值加1.在数组指针中,指针值+1是指向下一个数组元素的地址。

for(p=student;p<student+3;p++)

printf("姓名:%s\t 年龄:%d\t 性别:%c\t 学号:%d\n",p->name,p->age,p->sex,p->student_number);

这组代码是打印出内容。

相关推荐
枫景Maple4 小时前
C#字典Dictionary的内部实现原理
开发语言·c#
上单带刀不带妹6 小时前
Node.js 中的 fs 模块详解:文件系统操作全掌握
开发语言·javascript·node.js·fs模块
牵牛老人6 小时前
Qt中的QWebSocket 和 QWebSocketServer详解:从协议说明到实际应用解析
开发语言·qt·网络协议
chenglin0166 小时前
制造业ERP系统架构设计方案(基于C#生态)
开发语言·系统架构·c#
凌晨7点6 小时前
控制建模matlab练习13:线性状态反馈控制器-②系统的能控性
开发语言·matlab
要记得喝水6 小时前
汇编中常用寄存器介绍
开发语言·汇编·windows·c#·.net
shi57837 小时前
C# 常用的线程同步方式
开发语言·后端·c#
凌晨7点7 小时前
控制建模matlab练习11:伯德图
开发语言·matlab
freed_Day7 小时前
Java学习进阶--集合体系结构
java·开发语言·学习
Shun_Tianyou8 小时前
Python Day25 进程与网络编程
开发语言·网络·数据结构·python·算法