C语言学习:结构体的创建和使用 您所在的位置:网站首页 动态结构体数组的创建C C语言学习:结构体的创建和使用

C语言学习:结构体的创建和使用

2023-07-19 01:08| 来源: 网络整理| 查看: 265

结构体,是C语言学习过程中非常重要的一个部分,特别是在后面学习数据结构的过程中。 首先,结构体,简而言之,就是创建一个模块,这个模块里面包含着需要使用的各种数据类型,将它封装成一个函数类型但又不是一个函数的整体。

对于结构体,需要从以下这几个方面来了解:

结构体的定义如何对结构体进行初始化,赋值如何访问结构体里面的数据如何判断结构体所占用内存空间的大小

结构体的定义: 结构体是程序员自行定义和使用的

struct mental{ int age; //结构体内用来存储数据的变量 char sex; char name[12]; }; //一个存储个人信息的简单结构体

结构体的初始化和赋值:

//创建结构体,定义struct mental 为结构体类型 struct mental{ int age; char sex; }; //结构体的初始化 struct mental met;//定义一个struct mental类型的met变量 #if 0 //创建结构体类型并初始化,通常选用这种 struct mental{ int age; char sex; char name[12]; }met; #endif //赋值 /*单个赋值:赋值的时候注意类型,同类型的值只能赋值给同 类型的变量,字符数组的赋值要特别注意*/ met.age = 18; met.sex = 'w'; strcpy(met.name,"Tomy"); /*整体赋值:直接定义一个struct mental类型的met变量并初始化*/ struct mental met{ 18, 'w', "Tomy" };//内部以逗号作为分隔符 //以这种方式进行赋值,各个数据的顺序一定要准确

访问结构体内部的数据: 结构体内部数据的访问和平常访问普通变量数据一样,直接调用变量名就可以对结构体数据进行精确的访问,只是访问时需要以定义的结构体类型的变量作为开头,即:met.age

printf("%d\n",met.age);

结构体所占用内存空间的大小 结构体内存大小等于结构体中各个成员所占大小之和。 计算结构体所占空间的大小有两个准则:效率高,省空间 结构体内存空间的是按临近的4字节或2字节来分配的。

struct mental{ int age; //int 4个字节 char sex; //char 1个字节 char name[4];// 4个字节 }met;

这个结构体所占用的空间就是12个字节,其中char sex占用一个字节,临近的int age和char name[4]分别占用4个字节,按结构体内数据类型临近的4字节或2字节来分配的.

#include #include void main() { struct number{ double sum; int n; char ch; }num; printf("size=%d\n",sizeof(num)); } 输出结果:size=16 该结构体内三种变量占用空间最大的为sum,为double型数据, 占用8个字节,n,ch各占4个字节和1个字节,按临近的4个字节分配, 总共16个字节。 若再在该结构体内加上一个int型变量,该结构体所就会占用20个字节的内存 #include #include void main() { struct number{ double sum;//占用内存空间的前8个字节 0~7 int n; // 8~11 int n1;//加在这里 12~15 char ch; //17 按四字节补齐 }num; printf("size=%d\n",sizeof(num)); } 输出结果:20

结构体所占内存大小等于结构体中各个成员占内存大小之和,结构体的内存空间是按临近的数据类型所占字节来进行分配的。 结构体所占内存大小还有些地方有问题,留待后面写篇单独的来解决,这里就不做过多阐述。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有