C 语⾔学习:结构体的创建和使⽤
,是C语⾔学习过程中⾮常重要的⼀个部分,特别是在后⾯学习数据结构的过程中。
⾸先,结构体,简⽽⾔之,就是创建⼀个模块,这个模块⾥⾯包含着需要使⽤的各种数据类型,将它封装成⼀个函数类型但⼜不是⼀个函数的整体。
对于结构体,需要从以下这⼏个⽅⾯来了解:
1. 结构体的定义
2. 如何对结构体进⾏初始化,赋值
3. 如何访问结构体⾥⾯的数据
4. 如何判断结构体所占⽤内存空间的⼤⼩
结构体的定义: 结构体是程序员⾃⾏定义和使⽤的
结构体的初始化和赋值:
访问结构体内部的数据: 结构体内部数据的访问和平常访问普通变量数据⼀样,直接调⽤变量名就可以对结构体数据进⾏精确的访问,只是访问时需要以定义的结构体类型的变量作为开头,即:met.age struct  mental { int  age ; //结构体内⽤来存储数据的变量 char  sex ; char  name [12];};  //⼀个存储个⼈信息的简单结构体
1
2
3
4
5//创建结构体,定义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"};//内部以逗号作为分隔符//以这种⽅式进⾏赋值,各个数据的顺序⼀定要准确
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
c语言如何去学
30
结构体所占⽤内存空间的⼤⼩ 结构体内存⼤⼩等于结构体中各个成员所占⼤⼩之和。 计算结构体所占空间的⼤⼩有两个准则:效率⾼,省空间 结构体内存空间的是按临近的4字节或2字节来分配的。
这个结构体所占⽤的空间就是12个字节,其中char sex占⽤⼀个字节,临近的int age和char name[4]分别占⽤4个字节,按结构体内数据类型临近的4字节或2字节来分配的.
结构体所占内存⼤⼩等于结构体中各个成员占内存⼤⼩之和,结构体的内存空间是按临近的数据类型所占字节来进⾏分配的。
结构体所占内存⼤⼩还有些地⽅有问题,留待后⾯写篇单独的来解决,这⾥就不做过多阐述。printf ("%d\n",met .age );
1struct  mental { int  age ; //int  4个字节 char  sex ; //char 1个字节 char  name [4];//  4个字节}met ;
1
2
3
4
5#include  <stdio.h>#include  <string.h>void  main (){ struct  number {  double  sum ;  int  n ;  char  ch ; }num ; printf ("size=%d\n",sizeof (num ));}
1
2
3
4
5
6
7
8
9
10
11输出结果:size =16该结构体内三种变量占⽤空间最⼤的为sum ,为double 型数据,占⽤8个字节,n ,ch 各占4个字节和1个字节,按临近的4个字节分配,总共16个字节。若再在该结构体内加上⼀个int 型变量,该结构体所就会占⽤20个字节的内存#include  <stdio.h>#include  <string.h>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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。