------Java培训、Android培训、iOS培训、.Net培训期待与您交流! -------
结构体的定义:
关键字:
struct
struct 结构体名{
类型名1 成员名1;
类型名2 成员名2;
……
类型名n 成员名n;
};
结构体变量的定义:
struct Student { char *name; int age; }; struct Student stu;
struct Student { char *name; int age; } stu;
struct { char *name; int age; } stu;
结构体的初始化:
将各成员的初值,按顺序地放在一对大括号{}中,并用逗号分隔,一一对应赋值。
例如:
struct Student {
char *name;
int age;
};
struct Student stu = {"MJ", 27};
而且,只能在定义变量的同时进行初始化赋值,初始化赋值和变量的定义不能分开(可以操作成员),下面的做法是错误的:
struct Student stu;
stu = {"MJ", 27};
赋值
"."称为成员运算符,它在所有运算符中优先级最高。
指向结构体的指针
- 如此形式:struct 结构体名称 * 指针变量名。
- * 访问结构体成员的方式:
结构体变量.成员名
(*指针变量名).成员名
指针变量名->成员名
注意
- 定义结构体类型,只是说明了该类型的组成情况,并没有给它分配存储空间,就像系统不为int类型本身分配空间一样。只有当定义属于结构体类型的变量时,系统才会分配存储空间给该变量。
- 结构体变量占用的内存空间是其成员所占内存之和,而且各成员在内存中按定义的顺序依次排列。
- 结构体只能在定义变量的同时进行初始化赋值。初始化赋值和变量的定义是不能分开的。但是可以给成员赋值。
- * 还有一种东西叫结构体数组。