//_48_结构体指针数组
//_48_main.cpp
//定义一个结构体指针数组,其数组名是数组的首地址,定义结构体类型的指针
//既可以指向数组的元素,也可以指向数组
#include <stdio.h>
#include <stdlib.h>
//定义一个全局结构体
struct student
{
long number;
char name[20];
char sex;
int age;
};
//声明结构体数组并赋初值
struct student stu[4]={{97032,"xiao ming",'M',20},
{97034,"xiao wang",'M',20},
{97034,"xiao tong",'F',19},
{97035,"xiao shui",'F',18}};
int main()
{
struct student *p;//定义一个结构体指针变量
printf(" 学号 姓名 性别 年龄\n");
/*
p加一意味着增加的地址值为结构体类型数组stu的一个元素所占的字节数
本例中是8(long)+20(char[20])+1(char)+4(int)
*/
for(p=stu;p<stu+4;p++)
printf("%-8ld%-12s%-10c%-3d\n",
p->number,p->name,p->sex,p->age);
system("pause");
return 0;
}
/*
1、如果p的初值为stu,即指向第一个元素,则p+1后指向下一个元素的起始地址
2、指针已定义为指向struct student类型的数据,它只能指向一个结构体类型的
数据!!!(也就是p的值是stu数组的一个元素的首地址),而不能指向某一
个元素中的某一个成员(即p的地址不能是成员的地址)
*/
48_结构体指针数组
最新推荐文章于 2025-03-31 20:33:50 发布