48_结构体指针数组

//_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的地址不能是成员的地址)

*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值