结构体的定义
struct Teacher
{
char name[64];
int age;
int id;
};
void main()
{
struct Teacher t1; // 告诉C编译器给我分配内存
system("pause");
return;
}
类型的重定义
typedef struct Teacher
{
char name[64];
int age;
int id;
} Teacher;
void main()
{
Teacher t1; // struct 关键字是可以省略的
system("pause");
return;
}
初始化结构体变量的三种方法
typedef struct Teacher
{
char name[64];
int age;
int id;
} Teacher;
void main()
{
// 1. 定义变量的同时初始化变量
Teacher t1 = { "aaa" , 31, 1};
}
// 2. 初始化变量的第二种方法
struct student2
{
char name[64];
int age;
}s5 = { "name", 21 };
// 3. 初始化变量的第三种方法
struct
{
char name[64];
int age;
}s6 = { "name", 21 };
Teacher t1;
t1.age = 20;
这个. 是寻址操作,是计算这个age相对于t1大变量的偏移量
注意这是计算 是在CPU中进行,并没有操作内存.
是在 = 的时候才是操作内存.
// 初始化变量的三种方法
// 1. 定义变量的同时初始化变量
Teacher t1 = { "aaa" , 31, 1};
{
Teacher *p = NULL;
p = &t1;
// -> 是寻址操作,计算属性相对于t2大变量的偏移量
printf("p->age : %d\n", p->age);
printf("p->name : %s\n", p->name);
}