作者前言
🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂_______________________________________________________
______________________________________________________________________
目录
结构体
插播小知识
1.char 、int 、short、double、等等都是C语言的内置类型
结构体的声明
结构的基础知识
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量
结构的声明
struct tag{member - list ;} variable - list ;
#include <stdio.h>
struct Studey
{
//描述学生的相关属性
char name[20];
int age;
char sex[5];
char tele[12];
} s3, s4;
//s3.s4是结构体类型的变量
//全局变量
int main()
{
struct Studey s1;
struct Studey s2;
return 0;
}
代码中有两种定义结构体类型 ,s3,和s4的定义的是结构体类型变量,是全局变量,s1和s2定义结构体类型变量,是局部变量,
有小可爱觉得定义结构体类型变量有点繁琐,我们可以使用typedef类型重定义
#include <stdio.h>
typedef struct Studey
{
//描述学生的相关属性
char name[20];
int age;
char sex[5];
char tele[12];
} Stu;
int main()
{
Stu s1;
Stu s2;
return 0;
}
结构成员的类型
结构的成员可以是变量、数组、指针,甚至是其他结构体。
#include <stdio.h>
struct B
{
char c;
int i;
};
struct C
{
char c;
int num;
int arr[10];
double* pd;
struct B b;
struct B* pb;
} s0;
struct B s1;
int main()
{
return 0;
}
结构体变量的定义和初始化
#include <stdio.h>
struct B
{
char c;
int i;
};
struct C
{
char c;
int num;
int arr[10];
double* pd;
struct B b;
struct B* pb;
} s0;
struct B s1;
int main()
{
// 按照顺序初始化
double a = 10;
struct C s2 = { 'q', 100, {1,2,3}, &a, {'a', 99}, NULL };
//指定成员初始化
struct C s3 = { .c = 's', .num = 100 };
return 0;
}
初始化有两种,一种是全部初始化,一种是部分初始化。
结构体成员的访问
.
->
#include <stdio.h>
#include <string.h>
struct S
{
char name[20];
int age;
};
void set_s(struct S* t)
{
//s.name = "zhangsan";
t->age = 18;
strcpy(t->name, "张三");
}
int main()
{
struct S s = { 0 };
//写一个函数给s中存放数据
set_s(&s);
return 0;
}
需要注意的是往数组名里写入数据要使用strcpy ,因为数组名是一个常数,往常数里面是不能写入数据的,
结构体传参
#include <stdio.h>
#include <string.h>
struct S
{
char name[20];
int age;
};
void set_s(struct S* t)
{
//s.name = "zhangsan";
t->age = 18;
strcpy(t->name, "张三");
}
void prit_s(struct S* s)
{
printf("%d\n%s", s->age, s->name);
}
int main()
{
struct S s = { 0 };
//写一个函数给s中存放数据
set_s(&s);
//打印结构体
prit_s(&s);
return 0;
}
如果是打印结构体一般是传地址过去,因为创建形参会在栈区申请一块空间,如果使用传值,空间的申请就很大,如果传址,就会节省很大空间,文章来源:https://www.toymoban.com/news/detail-622080.html
总结:
结构体就介绍到这里了,有不懂的小可爱可以私聊我文章来源地址https://www.toymoban.com/news/detail-622080.html
到了这里,关于C语言第十四课-------结构体的认识和使用-------重要一笔的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!