1.结构体类型创建:
结构体声明:
struct tag
{
mamber-list;
}variable-list;
结构体不能为空,声明时可以不完全声明(比如匿名结构体类型)。
结构体自引用 用指针来做。
struct Node
{
int data;
struct Node* next;
};
结构体的初始化:
#include<stdio.h>
#include<windows.h>
struct Point
{
int x;
int y;
}p1; //声明类型的同时定义的变量p1
struct Point p2;//定义结构体变量p2
//初始化:定义变量的同时赋初值
struct Point p3 = { 20,10 };
struct Node
{
int data;
struct Point p;
struct Node* next;
}n1 = { 10,{4,5},NULL };//结构体嵌套初始化
struct Node n2 = { 20,{5,6},NULL };//结构体嵌套初始化
结构体内存对齐:
结构体的大小不仅仅是将所有变量的大小加起来。存在内存对齐问题。
结构体对齐规则:
1.第一个成员在结