一、四中定义结构体类型变量方式以及初始化
1、先定义结构体类型再单独进行变量定义
struct Student { int Code; char Name[20]; char Sex; int Age; }; struct Student Stu; struct Student Stu[10]; struct Student *pStu;初始化
struct Student { int Code; char Name[20]; char Sex; int Age; }; struct Student Stu={200301,"张三",'M',21};
2、紧跟在结构体类型说明之后进行定义
初始化
struct Student { int Code; char Name[20]; char Sex; int Age; }Stu={200301,"张三",'M',21};
3、在说明一个无名结构体类型的同时直接进行定义,这种情况不能再用它来定义其他的变量。
初始化
struct { int Code; char Name[20]; char Sex; int Age; }Stu={200301,"张三",'M',21};
4、使用typedef说明一个结构体类型名后再用新类型名来定义变量,这种情况不可在写关键字struct
二、结构体使用
三种形式:
1、结构体变量名.成员名
2、指针变量名->成员名
3、(*指针变量名).成员名
#include<iostream.h> struct Student { int Code; char Name[20]; char sex; int Age; }; struct Student stu[2]={{200301,"张三",'M',21},{200302,"李四",'M',23}}; void main() { struct Student *pstu; for(pstu=stu;pstu<stu+2;pstu++) //pstu为指向数组stu的指针,因为&stu[0]表示数组中第一个元素所在的内存地址,stu也表示一样的意思 { //即stu指向stu[0],stu+1指向stu[1]; cout<<pstu->Code<<"\t"<<pstu->Name<<"\t"<<pstu->sex<<"\t"<<pstu->Age<<endl; } }
三、结构体做函数参数,引用传递,跟指针一样