结构体
一、结构体初识
结构体是一种构造类型,由若干成员构成,其中每个成员可以是一个基本数据类型或构造类型。
声明结构体的关键字为struct,其一般形式为:
struct 结构体名
{
成员列表;
};
示例:
struct stuent
{
char name[20];
char sex;
int grade;
};
结构体的使用,如下所示:
++++++++++结构体的使用示例++++++++++
#include<stdio.h>
struct student
{
char name[20];
char sex;
int grade;
}student[3]={{"liming",'M',1},{"xiaomei",'W',1},{"qiangzi",'M',2}}; /* name[20]、sex、grade说明该结构体中包含三个成员,student[3]说明该结构体数组包含三个结构体变量 */
void main()
{
for(int i=0;i<3;i++)
{
printf("姓名:%7s 性别:%c 年级:%d\n",student[i].name,student[i].sex,student[i].grade);
}
}
二、结构体指针
定义结构体指针的一般形式:
结构体类型 *指针名;
示例:
Struct studeng *p;
定义结构体指针后有两种使用方法:
使用点运算符引用结构体成员;
例:(*p).成员名;
注意:因为.运算符优先级高于*运算符,所以括号不能省。
使用指向运算符引用结构体成员;
例:p->成员名;
++++++++++结构体指针示例程序++++++++++
#include<stdio.h>
void main()
{
struct student
{
char name[20];
char sex;
int grade;
}student[3]={{"liming",'M',1},{"xiaomei",'W',1},{"qiangzi",'M',2}};
struct student *p=&student[0];
for(int i=0;i<3;i++,p++)
{
printf("姓名:%7s 性别:%c 年级:%d\n",(*p).name,(*p).sex,(*p).grade);
}
}