定义结构体类型的同时能够定义它的变量
1个回答
2022-09-20 · 百度认证:IT168官方账号,优质数码领域创作者
关注
展开全部
结构体是经常用到的数据类型,使用频率不亚于指针,所以需要重视,不过用法非常简单。
结构体变量的定义。前面只是定义了名字为Student的结构体类型,并非定义了一个结构体变量,就像int一样,只是一种类型。接下来定义一个结构体变量,方式有好多种。
1.先定义结构体类型,再定义变量第6行定义了一个结构体变量,变量名为stu。struct和Student是连着使用的。
2.定义结构体类型的同时定义变量结构体变量名为stu。
3.直接定义结构体类型变量,省略类型名结构体变量名为stu。
四、结构体的注意点。
1.不允许对结构体本身递归定义。如下做法是错误的,注意第3行。
2.结构体内可以包含别的结构体。
3.定义结构体类型,只是说明了该类型的组成情况,并没有给它分配存储空间,就像系统不为int类型本身分配空间一样。只有当定义属于结构体类型的变量时,系统才会分配存储空间给该变量。
第1~4行并没有分配存储空间,当执行到第6行时,系统才会分配存储空间给stu变量。
4.结构体变量占用的内存空间是其成员所占内存之和,而且各成员在内存中按定义的顺序依次排列。比如下面的Student结构体:在16位编译器环境下,一个Student变量共占用内存:2+2+4=8字节。
结构体变量的定义。前面只是定义了名字为Student的结构体类型,并非定义了一个结构体变量,就像int一样,只是一种类型。接下来定义一个结构体变量,方式有好多种。
1.先定义结构体类型,再定义变量第6行定义了一个结构体变量,变量名为stu。struct和Student是连着使用的。
2.定义结构体类型的同时定义变量结构体变量名为stu。
3.直接定义结构体类型变量,省略类型名结构体变量名为stu。
四、结构体的注意点。
1.不允许对结构体本身递归定义。如下做法是错误的,注意第3行。
2.结构体内可以包含别的结构体。
3.定义结构体类型,只是说明了该类型的组成情况,并没有给它分配存储空间,就像系统不为int类型本身分配空间一样。只有当定义属于结构体类型的变量时,系统才会分配存储空间给该变量。
第1~4行并没有分配存储空间,当执行到第6行时,系统才会分配存储空间给stu变量。
4.结构体变量占用的内存空间是其成员所占内存之和,而且各成员在内存中按定义的顺序依次排列。比如下面的Student结构体:在16位编译器环境下,一个Student变量共占用内存:2+2+4=8字节。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询