C零基础视频-39-结构体的定义与使用
Posted shellmad
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C零基础视频-39-结构体的定义与使用相关的知识,希望对你有一定的参考价值。
为什么要使用结构体
生活中的事物,往往有多种属性,我们为了记录和表示他们,需要围绕一个事物,记录多中数据。
如一只宠物狗,他可能有:姓名、颜色、体重。
我们可以使用三个不同的变量记录它:
#include <stdio.h>
int main(int argc, char* argv[])
{
char szName[20] = { "旺财" };
char szColor[20] = { "黄色" };
int nWeight = 5;
printf("%s 颜色:%s, 体重:%d公斤
", szName, szColor, nWeight);
return 0;
}
但是,毕竟这些变量是互相独立的,除了程序员自己注意外,没有其他办法从语法上强调了三个变量都指向了同一个事物。
为此,C语言中发明了结构体,他是一中非基本数据类型,可以将多种数据组合为新的数据类型。
结构体的定义与使用
结构体的定义
结构体的关键字是struct,用于声明新的数据类型,其语法如下:
struct <结构体类型名> {
<成员类型1> <成员变量名1>;
<成员类型2> <成员变量名2>;
……
};
比如,我们声明宠物狗的结构体类型:
struct tagPetDog{
char szName[20];
char szColor[20];
char nWeight;
};
定义结构体变量
定义完成结构体类型后,我们就可以用这种新类型,去声明新变量,声明方式和基本数据类型一样:
<类型名称> <变量名>
比如:
#include <stdio.h>
struct tagPetDog{
char szName[20];
char szColor[20];
char nWeight;
};
int main(int argc, char* argv[])
{
struct tagPetDog dog1;
struct tagPetDog dog2;
return 0;
}
也可以在声明结构体类型的同时,声明变量名:
struct tagPetDog{
char szName[20];
char szColor[20];
char nWeight;
}dog1, dog2;
但是这样容易造成变量管理的混乱,在工程实践上使用较少。
结构体同数组类似,可以在定义变量的同时初始化:
struct tagPetDog dog1 = { "旺财", "黄色", 5 };
引用结构体中的成员
声明结构体变量后,我们可以通过"."符号引用其中的成员。
#include <stdio.h>
struct tagPetDog{
char szName[20];
char szColor[20];
char nWeight;
};
int main(int argc, char* argv[])
{
struct tagPetDog dog1 = { "旺财", "黄色", 5 };
printf("%s 颜色:%s, 体重:%d公斤
", dog1.szName, dog1.szColor, dog1.nWeight);
return 0;
}
可以看出,这样使得数据更加聚合,便于理解和管理。
以上是关于C零基础视频-39-结构体的定义与使用的主要内容,如果未能解决你的问题,请参考以下文章
《C#零基础入门之百识百例》(六十一)结构体的定义 -- 时间设计