目录
1.结构体类型的声明
2.结构体初始化
3.结构体成员访问
4.结构体传参
1.结构体类型的声明
//创建一个结构体类型S
struct S
{
char c;
int i;
double d;
};//创建一个类型Stu,相当于int
//struct结构体关键字
struct Stu
{
//结构体成员可以是数组,指针,标量甚至其他结构体如:
struct S ss;//struct s 是定义的其他结构体
//成员变量
char name[20];//名字
int age[20];//年龄
char id[20];
}s1,s2;//s1和s2也是结构体变量
//但是s1和s2是全局变量,在main()函数中创建的s是局部变量
2.结构体初始化
注:用的上面的结构体
struct Stu s = { {'w',20,3.14},"张三",30,"2022",};
//用Stu类型创建一个对象s,相当于int s,区别类型和对象
//因为结构体中嵌套了结构体,初始化的时候也需要嵌套
3.结构体成员访问
结构体成员访问需要学习 *** 作符“.”和“->”如果不了解请先前往学习对应的 *** 作符,C语言 *** 作符详解
#define _CRT_SECURE_NO_WARNINGS 1
#include
struct S
{
char c;
int i;
double d;
};
//创建一个类型Stu,相当于int
struct Stu //struct结构体关键字
{
//结构体成员可以是数组,指针,标量甚至其他结构体如:
struct S ss;//struct s 是定义的其他结构体
//成员变量
char name[20];//名字
int age[20];//年龄
char id[20];
}s1,s2;//s1和s2也是结构体变量
//但是s1和s2是全局变量,在main()函数中创建的s是局部变量
int main()
{
struct Stu s = { {'w',20,3.14},"张三",30,"2022",};
//用Stu类型创建一个对象s,相当于int s,区别类型和对象
//因为结构体中嵌套了结构体,初始化的时候也需要嵌套
printf("s.ss.c=%c\n",s.ss.c);//访问也是嵌套访问
//用指针访问
struct Stu* p = &s;//定义该结构体类型指针
printf("(*p).ss.c=%c\n",(*p).ss.c);
printf("p->ss.c=%c\n", p->ss.c);
return 0;
}
4.结构体传参
结构体传参实例:
写一个函数用于读出结构体对象的所以成员变量
注:写出函数后需要将结构体的信息传到函数中,函数传参又包括传值调用和传值调用,如果对函数不太了解不知道什么是函数,函数如何调用,什么是传值调用,什么是传址调用可以去查看学习一下,有实例帮助理解。
C语言函数是什么?函数全方位介绍
#define _CRT_SECURE_NO_WARNINGS 1
#include
struct S
{
char c;
int i;
double d;
};
//创建一个类型Stu,相当于int
struct Stu //struct结构体关键字
{
//结构体成员可以是数组,指针,标量甚至其他结构体如:
struct S ss;//struct s 是定义的其他结构体
//成员变量
char name[20];//名字
int age;//年龄
char id[20];
}s1,s2;//s1和s2也是结构体变量
//但是s1和s2是全局变量,在main()函数中创建的s是局部变量
//写一个函数print()用于输出结构体成员
void print1(struct Stu t)
{
printf("%c\n", t.ss.c);
printf("%d\n", t.ss.i);
printf("%lf\n", t.ss.d);
printf("%s\n", t.name);
printf("%d\n", t.age);
printf("%s\n", t.id);
}
void print2(struct Stu *p)
{
printf("%c\n",p->ss.c);
printf("%d\n",p->ss.i);
printf("%lf\n",p->ss.d);
printf("%s\n",p->name);
printf("%d\n",p->age);
printf("%s\n",p->id);
}
//print1()函数是:函数传值调用
//print2()函数是:函数传址调用
//这里当然print2()的方式要比print1()更好
//好处:我们可以修改数据,并且在调用函数时不需要开辟新的内存
int main()
{
struct Stu s = { {'w',20,3.14},"张三",30,"2022",};
print1(s);
print2(&s);
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)