1.结构体定义
struct Name{
//一些基本数据结构或自定义的数据类型
}
struct studentInfo{
int id;
char name[20];
studentInfo *next;
}Alice,Bob,stu[1000];
studentInfo是结构体名,Alice,Bob代表两个结体变量,*next是结构体指针,stu[1000]是一个结构体数组,也可以如下定义结构体变量
studentInfo Alice;
studentInfo stu[1000];
2.结构体访问
使用 " . " 或 " -> "(指针变量可以使用)
stu.id
stu.name
(*p),id
(*p).name
或
p->id
p->name
3.结构体的初始化
可以直接赋值 如stu.id = 1,但是太麻烦,于是有了构造函数,放在结构体中,函数名与结构体名字相同
struct studentInfo{
int id;
char gender;
char name[20];
studentInfo() {} //默认(无参)构造函数
studentInfo(int _id,char _gender) { //有参构造函数
id = _id;
gender = _gender;
}
//简化后的有参构造函数
studentInfo(int _id,char _gender):id=(_id),gender=(_gender){}
}Alice,Bob,stu[1000];
这样就可以方便的进行初始化
studentInfo stu = studentInfo(10086,'M');
应用实例
#include<stdio.h>
struct Point{
int x,y;
Point(){}
Point(int a,int b){
x = a;
y = b;
}
}pt[10];
int main(){
int num = 0;
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
pt[num++] = Point(i,j);
for(int i=0;i<num;i++)
printf("%d %d\n",pt[i].x,pt[i].y);
return 0;
}