初级结构体
1.结构体类型的声明
结构体是什么:
struct stu是咱们本身建立的一种类型(与int相似)
s是一个变量,它的类型是结构体类型(struct stu)
struct stu是变量类型的声明,声明是一条语句因此要在花括弧后加分号
类型不占空间,只有当建立变量时才向内存申请空间
1.struct tag(tag的意思是标签)结构体标签(tag本身决定,简明知意便可)
2.member - list结构体成员变量列表
3.结构体成员变量能够是不一样类型的
4.variable - list(变量列表)s1,s2,s3;
5.结构体成员列表里放的都是变量
6.可是这些变量在没使用结构体时都是未开辟空间的
5.表示struct stu s1;struct stu s2;struct stu s3;
6.并且s1,s2,s3为全局变量
通常不采用这种方法
通常建立临时变量,而不是全局变量
typedef从新定义的意思
就是将struct Stu从新起了一个名字叫Stu
而且能够根据这个建立变量
2.结构体变量的定义及初始化
结构体使用{}花括弧进行初始化
结构体变量的初始化(一一对应)
至关于char name[20]="张三",short age=20,char tele[12]="15249287076",char sex[5]="男";
结构体的成员能够是其余结构体
此时结构体的初始化
由于成员s是另外一个结构体,因此也要用花括弧进行初始化
3.结构体成员访问
使用(.)操做符进行成员访问
访问方式:
建立的结构体变量t(.)结构体成员变量
例:t.ch
分析:
4.结构体传参
传值调用时
函数形参使用相应的结构体变量来接受实参传来的结构体变量
传址调用时
函数形参使用相应的结构体 指针 变量 来接受实参传来的结构体变量的地址
用(->)操做符进行结构体成员访问
只能 在 变量为 指针变量 时 可使用 (->)操做符 进行结构体成员访问
print2更好一点
传值调用是传址调用的一份临时拷贝
传址调用时传递的是结构体的地址
内存时间和空间的浪费会小一点
建议:
结构体传参
采用传址调用的方式
压栈:
任何一次函数调用时会在栈区上申请一块内存空间
只能在栈顶上入栈
只能在栈顶上出栈
传参的这个动做就叫作压栈操做ide