码迷,mamicode.com
首页 > 其他好文 > 详细

指向结构体的指针

时间:2015-07-23 00:45:15      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:结构   数组   

运用指向结构体数组的指针输出学生信息

说明:指针指向结构体数组,就得到了该结构体数组的起始地址。通过该地址可以访问结构体数组中的所有成员变量。其中,指向结构体的指针的算术运算与 指向数组的指针的用法相似。

#include<stdio.h>
#define N 10

//结构体类型及变量的定义,初始化
struct student
{
	char *number;
	char *name;
	char sex;
	int age;
	float score;
}stu[3]={{"06001","Wang Chong",'m',22,78.5},
{"06002","Li Hua",'f',21,87.0},{"06003","Zhang Yang",'m',22,90.0}};
void main()
{
	struct student *p;
	printf("学生基本情况表:\n");
	printf("编号          姓名        性别   年龄  成绩\n");
	for(p=stu;p<stu+3;p++)//通过指向结构体的指针输出学生信息
		printf("%-8s%12s%8c%8d%6d\n",p->number ,p->name ,p->sex ,p->age ,p->score );
}

运行结果如下;

技术分享

在上面的程序中,首先定义了一个指向结构体的指针变量p;在循环体中,指针指向结构体数组p=stu,即指针指向了结构体变量的起始地址。通过p->number,p->name等访问各个成员。p+1表示数组中第二个元素stu[1]的起始地址。p+2表示数组中第三个元素的起始地址,如果所示:

技术分享

在结构体定义时,通常使用关键字typedef建立已经定义好的数据类型的别名。例如:

typedef struct student StuInfo;

结构体类型student student的别名就被定义为StuInfo,这样StuInfo就成为一个结构体类型,可以利用StuInfo来定义结构体变量和指针变量,例如:

StuInfo stu[3], *p;

也可以利用typedef为基本数据类型建立别名,例如:

typedef int DataType;//这样DataType就跟int等效

使用关键字typedef可以使程序有更好的可移植性。

版权声明:本文为博主原创文章,未经博主允许不得转载。

指向结构体的指针

标签:结构   数组   

原文地址:http://blog.csdn.net/weichanjuan3/article/details/47011443

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!