C语言学习记录10
作者:互联网
10.初始结构体
1.结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。
2.结构声明
struct Stu//Stu结构体标签 struct结构体关键字
{
//描述一个学生,一些数据
char name[20];
short age;
char tele[12];
char sex[5];
//成员变量
}s1,s2,s3;//s1,s2,s3是三个全局的结构体变量
typedef struct Stu
{
//描述一个学生,一些数据
char name[20];
short age;
char tele[12];
char sex[5];
}Stu;
int main()
{
struct Stu s;//s 创建结构体局部变量
Stu s2={"XX",30,"1111111111","保密"};
return 0;
}
3.结构体成员的访问
结构体变量访问成员,结构体变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数。
s.name
typedf struct Stu
{
char name[20];
short age;
char tele[12];
char sex[5];
}Stu;
void Print1(Stu tmp)
{
printf("name:%s\n",tmp.name);
printf("nage:%d\n",tmp.age);
printf("tele:%s\n",tmp.tele);
printf("sex:%s\n",tmp.sex);
}
void print2(Stu* ps)
{
printf("name:%s\n",ps-->name);
printf("nage:%d\n",ps-->age);
printf("tele:%s\n",ps-->.tele);
printf("sex:%s\n",ps-->sex);
}
int main()
{
Stu s={"李四",40,"1111111111111","男"};
print1(s);
print2 (&s);
return 0;
}
4.结构体传参
print2函数比print1更好
print1进行传参时,空间浪费和时间浪费比较严重
而print2进行传参时,只要传递地址,性能更高。
函数传参----压栈
栈区: 局部变量
函数的形式参数
函数调用也开辟空间
堆区:动态内存分配
malloc/free
realloc
calloc
静态区:全局变量
静态变量
//扩展知识点:函数栈帧的创建和销毁
标签:10,name,记录,C语言,char,Stu,tele,printf,sex 来源: https://blog.51cto.com/u_15229941/2949804