江苏网站优化建站,自创网站的软件下载,凡科小程序怎么制作,wordpress教程 初学者大家好我们今天学习的是结构体#xff0c;话不多说。上车吧#xff01;#xff01;#xff01; 文章目录 1. 结构体类型的声明2. 结构体变量的定义创建和初始化3. 结构成员访问操作符4. 结构体内存对⻬5. 结构体传参6. 结构体实现位段 前言
C语言中类型有很多#xff0c;… 大家好我们今天学习的是结构体话不多说。上车吧 文章目录 1. 结构体类型的声明2. 结构体变量的定义创建和初始化3. 结构成员访问操作符4. 结构体内存对⻬5. 结构体传参6. 结构体实现位段 前言
C语言中类型有很多int short char double 等等但是随着要求的变化这些是远远不够满足我们的需要。所以就有了结构体的一席之地。结构体可以方便我们做好多事比如一个班级的学生我们想记录他的姓名 学号 体重 身高 各科成绩等等。这个时候怎么用普通的 int这种实现。不太方便吧所以有了结构体的出现。那么跟随我的脚步让我们重新认识一下吧-结构体。 提示以下是本篇文章正文内容下面案例可供参考
一、结构体类型的声明
struct tag
{member-list;
}variable-list;这里的 member-list是结构体成员variable-list是结构体的变量名tag就是结构体类型名。 struct Stu
{char name[20];//名字int age;//年龄char sex[5];//性别char id[20];//学号
}; //分号不能丢二、结构体变量的定义创建和初始化
1.创建
结构体就是将不同类型的数据组合成一个有机的整体以便于引用。如定义一个学生的信息struct student
{ int num; char name[20]; int score;
};
struct为结构体关键字student就是这结构体的类型名而 numname, score就是该结构体的成员他们可以是不同类型的注意在定义类型的时候不要对结构体成员numname, score赋初值。其次就是在大括号后面要有分号“”。 2.定义
1定义变量的方式都是大同小异的都为数据类型变量名这样一种方式比如int型首先得有int这样一个数据类型然后再用int这个数据类型去定义一个变量同样的我们要定义一个结构体变量必须要有一个结构体类型然后用这个类型去定义一个变量。结构体变量的定义有多种方式 方式一先定义结构体类型再定义变量名
struct student{int num;char name[20];int score;};
int main()
{struct student zhangsan;return 0;
}
其中struct是关键字student是结构体标记用于为结构体命名struct student代表该结构体的类型 大括弧里面就是结构体的成员。注意大括弧的后面一定要有一个分号‘’。到此为止我们有了struct student这样的类型了struct student就等价于我们的int一样接下来我们就要定义一个这样类型的变量定义格式如下struct student zhangsan; 这个zhangsan就是我们所要的结构体变量。
2
方式二在声明类型的同时定义变量 如 这种方式定义结构体后续可以根据需要定义新的变量如struct student Wangwu。 注意不能用Zhangsan去定义新的变量这里Zhangsan、Lisi都为变量名而不是结构体类型。
3
方式三直接定义结构体类型变量 这种定义方式中结构体变量只能在定义结构体类型的时候定义不能再定义其他的变量。这样的定义的结构体类型是没有名字的我们也可以用typedef重新为这样的结构体类型命如 使用typedef后我们可以用Zhangsan作为数据类型来定义新的变量。需要注意的是不能直接使用Zhangsan.num因为Zhangsan不是变量而是结构体类型。
3.初始化 关于结构体的一点说明 1、不能将结构体变量作为整体进行操作: printf(%d, %d\n, A);错误 scanf(%d, d\n”,A) //错误 printf(%d, %d\n”, A.num, A.score); //正确 scanf(%d, %d\n”, Lucy.num, Lucy.sex); //正确 2、当结构体变量的成员也是结构体类型时引用必须用最底层的成员变量如下 3、成员名可与程序中的变量名相同,二者代表不同对象 4、可以引用结构体变量成员的地址也可以引用结构体变量的地址,例如 scanf(%d, A.num); //输入A.num的值 printf(%d, A; //输出Bob的首地址 目的主要用作函数参数传递结构体变量的地址。 三. 结构成员访问操作符
1.直接访问结构体变量.成员名
struct Point { int x; int y; }p { 1,2 }; int main() { printf(x:%d y:%d\n, p.x, p.y); return 0; }
2.间接访问结构体变量-成员名
int main() { struct Point p { 3,4 }; struct Point* ptr p; ptr-x 10; ptr-y 20; printf(x %d y %d\n, ptr-x, ptr-y); return 0; } 总结
这个是对结构体有了基本的认识了谢谢大家的观看不对的地方请在评论区留言。