结构体声明:
struct str
{
int a;
int b;
};
结构体定义:
struct str str1; //定义了一个str型的结构体变量str1
结构体指针定义:
struct str* p_str; //定义了一个str型的结构体指针p_str
p_str = &str1; //取str1的地址,赋给p_str
1.当使用一个结构体变量的成员时用 "."
例如:str1.a str1.b
2.当使用一个结构体指针指向的结构体的成员时用 "->"
例如:p_str->a p_str->b
补充:
- struct student{
- char *name;
- int score;
- struct student* next;
- }stu,*stu1;
1.结构体指针需要初始化;
stu1 = (struct student*)malloc(sizeof(struct student));/*2.结构体指针需要初始化*/
2.结构体成员指针需要初始化;
stu.name = (char*)malloc(sizeof(char)); /*1.结构体成员指针需要初始化*/
3.结构体指针的成员指针同样需要初始化。
stu1->name = (char*)malloc(sizeof(char));/*3.结构体指针的成员指针同样需要初始化*/
只要是指针,要使用它前就必须保证指针变量的值是一个有效的值;否则,它指向的内存一定是垃圾数据!