(一)定义结构体的三种方法:
1:定义结构体类型,然后定义变量。例:
struct Teacher
{
char name[64];
int age;
int id;
};
void main()
{
struct Teacher t1;
}
或者是使用typedef定义结构体类型,例:
typedef struct Teacher
{
char name[64];
int age;
int id;
}Tcher;
void main()
{
Tcher t1;
}
2:定义结构体类型并定义变量,例:
struct Teacher
{
char name[64];
int age;
int id;
}t1,t2,t3;
3,定义匿名结构体,定义变量,例:
struct
{
char name[64];
int age;
int id;
}t1,t2,t3;
(二)初始化结构体的三种方式
1:定义变量然后初始化,例:
typedef struct Teacher
{
char name[64];
int age;
int id;
}Tcher;
void main()
{
Tcher t1 = {"aaaa",30,01};
}
2,初始化的第二种方法,例:
struct Teacher
{
char name[64];
int age;
int id;
}t1={“aaaa”, 30, 01};
3,初始化的第三种方法,例:
struct //匿名结构体初始化
{
char naem[64];
int age;
int id;
}t9 = { "aaaa", 13, 02 };
(三)结构体的基本操作:
1,结构体元素调用,例:
a:普通方式:
struct Teacher
{
char name[64];
int age;
int id;
}t1={“aaaa”, 30, 01};
void main()
{
printf("name:%s\n",t1.name);
printf("age:%d\n",t1.a)age;
}
需要注意的是: . 操作符是寻址操作,计算age 相对于大变量t1的偏移量,通过CPU计算,不操作内存。
b:指针调用:
typedef struct Teacher
{
char name[64];
int age;
int id;
}Tcher;
void main()
{
Tcher t1 = {"aaaa",30,1};
Tcher *p=NULL;
p = &t1;
printf("p->age:%d\n", p->age);
printf("p->name:%s\n", p->name);
//->操作符是寻址操作 计算age相对于t1大变量的偏移量==》计算cpu进行 没有操作内存
}
2:赋值操作,两个结构体之间支持 = 号赋值,例:
typedef struct Teacher
{
char name[64];
int age;
int id;
}Tcher;
void main()
{
Tcher t1 = {"aaaa",30,1};
Tcher t2;
t2 = t1;
}