1、声明结构体时需要在末尾使用分号(并没有分配内存)
2、声明结构体变量时和声明普通的变量没什么区别,作用域、链接、存储时期同样对其有效
3、声明结构体变量的几种方式
(1)struct book{
int x;
};
struct book a;
(2)struct book{
int x;
} a;
(3)stuct {
int x;
} a;
(匿名结构体,只能创建一次a这个变量)
(4)
typedef struct{
int x;
int y;
} xx;
xx a = {
10,
20};
(5)
struct book{
int x;
};
struct book a;
a = (struct book){10};
4、结构体变量的初始化
struct book{
int x;
int y;
};
struct book a = {.y=10};
如果是struct book b = {
.y = 5,
10,
20
};
则最终b.y为20而不是5
5、当把结构体变量作为参数传递给函数的时候,进行的是值传递。函数会创建一个代码块作用域、空链接、自动的新的结构体变量,然后依据传入的结构体变量的内容进行复制。在函数中对新的结构体变量所做的修改不会影响到实参
6、同一类型的结构体变量是可以通过等号进行赋值操作的