一.结构定义
结构结构{//结构名称
长整型id; //数据类型成员名称1
char studentName[10]; //数据类型成员名称2
int scoreMath; //数据类型成员名称3
(;
二.结构变量的定义
1声明结构模板,然后定义结构变量
结构结构{//结构名称
长整型id; //数据类型成员名称1
char studentName[10]; //数据类型成员名称2
int scoreMath; //数据类型成员名称3
(;
struct student stu1; //结构变量1
struct student stu2; //结构变量1
2在声明结构体模板的同时定义结构体变量
结构结构{//结构名称
长整型id; //数据类型成员名称1
char studentName[10]; //数据类型成员名称2
int scoreMath; //数据类型成员名称3
}stu1; //结构变量
3在声明结构体模板的同时定义结构体变量,可以省略结构体名称。
结构{//struct结构名称
长整型id; //数据类型成员名称1
char studentName[10]; //数据类型成员名称2
int scoreMath; //数据类型成员名称3
}stu1; //结构变量
三.用tyepedef定义数据类型
关键字typedef用于定义特定于系统或程序员自定义的数据类型的别名。
例如,typedef int STU; 在int中定义了新的名称STU。 也就是说,STU是int的同义词。
#包含
typedef int STU;
void main () }
STU a=1,b=2,temp=0;
temp=a;
a=b;
b=temp;
printf(%d%d )、a和b );
}
所以typedef struct student STUDENT; 等效于以下表示别名。
类型结构struct student {//struct结构名称
长整型id; //数据类型成员名称1
char studentName[10]; //数据类型成员名称2
int scoreMath; //数据类型成员名称3
} STUDENT; //别名
STUDENTstu1、stu2; //变量
STUDENT STU[2]; //结构数组变量的定义
四.结构变量初始化(包括结构数组)
STUDENT stu1={2019001,'小jpdwd ',100};
STUDENT stu2={2019002,' xsdwbl ',90};
STUDENT STU[2]={{2019001,'小jpdwd ',100},{2019002,' xsdwbl ',90}; //结构数组变量的赋值
五、嵌套结构(一个结构作为自己的成员嵌套另一个结构) (包括结构数组) )。
1定义
typedef struct data{
年; //年
int month; //月
输入日期; //天
}DTAE;
类型结构struct student {//struct结构名称
长整型id; //数据类型成员名称1
char studentName[10]; //数据类型成员名称2
int scoreMath; //数据类型成员名称3
DTAE birthday; //生日
} STUDENT; //别名
STUDENT stu1;
STUDENT stu2;
STUDENT STU[2];
2赋值
STUDENT stu1={2019001,'小jpdwd ',100,{ 1998,12,26 };
STUDENT stu2={2019002,' xsdwbl ',90,{ 1991,12,25 };
STUDENT STU[2]={{2019001,'小jpdwd ',100,{ 1998,12,26 },{2019002,' xsdwbl ',90,{ 1991,12,25 } }
3引用(呼叫) )
结构名称变量名称**.**不是成员名称//结构名称
stu1.birthday.year=1991;
stu2.scoreMath=100;
STU[0].studentID=2019001;
通过键盘分配时,不需要添加char类型
scanf('%c”,stu1.studentName );
六.结构指针的定义和初始化
1结构名称*指针变量名称
STUDENT *pt;
2定义并初始化
STUDENT *pt=stu1; //结构指针变量pt指向结构变量stu1
上下两者等价
STUDENT *pt;
pt=stu1;
3标准访问格式
指针结构变量名称——成员名称
pt-birthday;
另一个不经常使用
(pt ).studentID;
4访问数组
以下三个是等价的
STUDENT *pt=STU; //指向数组STU中第一个元素的地址
STUDENT *pt=STU[0];
STUDENT *pt;
pt=STU;
4结构指针一般不用于输出。 以下是普通指针的输出
int a=9
int *pt;
pt=a;
printf('%d ',*pt );