C语言第十四课-------结构体的认识和使用-------重要一笔
作者前言
🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂_______________________________________________________
______________________________________________________________________
目录
结构体
插播小知识
1.char 、int 、short、double、等等都是C语言的内置类型
struct tag{member - list ;} variable - list ;
-
-
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类型重定义
-
-
typedef struct Studey
-
{
-
//描述学生的相关属性
-
char name[20];
-
int age;
-
char sex[5];
-
char tele[12];
-
} Stu;
-
int main()
-
{
-
Stu s1;
-
Stu s2;
-
return 0;
-
}
结构成员的类型
结构的成员可以是变量、数组、指针,甚至是其他结构体。
-
-
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;
-
}
结构体变量的定义和初始化
-
-
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;
-
}
初始化有两种,一种是全部初始化,一种是部分初始化。
结构体成员的访问
.
->
-
-
-
-
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 ,因为数组名是一个常数,往常数里面是不能写入数据的,
结构体传参
-
-
-
-
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;
-
}
如果是打印结构体一般是传地址过去,因为创建形参会在栈区申请一块空间,如果使用传值,空间的申请就很大,如果传址,就会节省很大空间,
总结:
结构体就介绍到这里了,有不懂的小可爱可以私聊我
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggghak
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13