目录
1. 结构体类型的声明
2. 结构体初始化
3. 结构体成员访问
4. 结构体传参
1. 结构体类型的声明
创建一个结构体类型,其实就相当于相当于一个int类型,类型本身并不占用内存空间的,只有定义和初始化的时候才开辟空间
//结构体的申明1
struct stu//创建一个结构体类型,相当于int,不占用内存空间的,定义初始化时才开辟空间;
{
char name[20];
int age;
char tele[12];
char sex[5];
};//一定要加分号。
//a1,a2,a3;//这里可以创建结构体全局变量
//结构体的申明2
typedef struct stu2//以上两种申明方法是一样的
{
char name[20];
int age;
char tele[12];
char sex[5];
}Stu;
2. 结构体初始化
//结构体的定义和初始化;
struct stu s1 = {"zhangsan", 12, "1580000", "male"};
Stu s2 = {"lisi", 15, "1580000", "male"};
s1.name = "wangwu";
3. 结构体成员访问
有两种访问方法
Stu s1; Stu * p; s1.name = "liuxiao";//访问方法1 p->age = 18;//访问方法2
4. 结构体传参
函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。
结构体传参的时候,要传结构体的地址。
void Print1(Stu tmp)//传结构体,这种方法实际上是拷贝了一份给tmp
{
printf("name: %sn",tmp.name);
printf("age: %dn",tmp.age);
}
void Print2(Stu* p)//传结构体指针
{
printf("tele: %sn",(*p).tele);
printf("sex: %sn",p->sex);
}



