初识结构体
- 结构的声明
- 结构成员的类型
- 结构体变量的定义和初始化
- 结构体成员的访问
- 结构体传参
结构是一些值的集合,结构体的值类型可以不同,这些值称为结构体的成员变量
结构的声明
struct tag
{
member list;
}variable-list;
struct Stu
{
char name[20];
int age;
char sex[5];
char id[20];
}Stu1;
int main()
{
struct Stu s2;
}
结构成员的类型
结构体成员的类型可以是标量,数组 ,指针,或者其他结构体都可以
结构体变量的定义和初始化
struct Node
{
int data;
struct Point p;
struct Node* next;
}n1 = {10, {4,5}, NULL};
struct Node n2 = {20, {5, 6}, NULL};
结构体成员的访问
struct Stu
{
char name[20];
int age;
char sex[5];
char id[20];
}s;
int main()
{
s.age = 20;
struct Stu *ps = &s;
printf("age = %d \n",(*ps).age);
printf("age = %d \n", ps->age);
return 0;
}
结构体传参
struct stu
{
char name[20];
int age;
char sex[5];
char id[20];
}s;
void print1(struct stu t)
{
printf("age = %d\n",t.age);
}
void print2(struct stu* ps)
{
printf("age = %d\n", ps->age);
}
int main()
{
s.age = 20;
struct stu* ps = &s;
printf("age = %d \n", (*ps).age);
printf("age = %d \n", ps->age);
print1(s);
print2(&s);
return 0;
}
传值调用与传址调用
传值调用参数压栈的系统开销比较大,浪费内存空间且速率下降,传址调用的效率更高
传址调用可以改变原有结构体的数据,相对来说没有那么安全,但是稍加注意就可以避免
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)