一、基础知识
1、声明
struct stu
{
char name[10];
int age;
char sex;
char id[20];
};
结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量比如数组,指针甚至是其他结构体
二、访问
结构体变量访问成员
结构变量的成员是通过点操作符(.)访问的,点操作符接受两个操作数,例如
#include<stdio.h>
#include<string.h>
struct stu
{
char name[10];
int age;
char sex;
char id[20];
};
int main()
{
struct stu s1 = { "yao",77,'1',"39999" };
printf("%s\n", s1.id);
strcpy(s1.id, "222222");
printf("%s\n", s1.id);
}
结构体指针访问成员
#include<stdio.h>
struct stu
{
char name[10];
int age;
char sex;
char id[20];
};
int main()
{
struct stu s1 = { "yao",77,'1',"39999" };
struct stu* p = &s1;
printf("%d\n", p->age);
printf("%d", (*p).age);
return 0;
}
三、传参函数
传参的时候,参数是需要压栈的,如果传递一个结构体对象的时候,结构体过大,参数压栈系统开销比较大,所以一般传结构体的地址
#include<stdio.h>
struct stu
{
char name[10];
int age;
char sex;
char id[20];
};
void print1(struct stu s)
{
printf("%d\n", s.age);
}
void print2(struct stu *p)
{
printf("%d\n", p->age);
}
int main()
{
struct stu s1 = { "yao",77,'1',"39999" };
struct stu* p = &s1;
print1(s1);
print2(p);
return 0;
}