关于结构类型下面说法错误的是()
A. 结构类型不可作为其成员的类型
B. 结构变量的大小就是其各成员的大小之和
C. 结构类型可以定义在函数之外
D. 结构类型可以定义在函数之中
结构类型无法将自己的类型作为其成员的类型,因为自己的类型定义尚不完整,要在结束的大括号(})后才算定义完整。 然而,结构类型可以包含指向自己类型的指针,这样的应用很常见。
选B。
tag 是...
用户登录可进行刷题及查看答案
tag 是结构体标签。
member-list 是标准的变量定义,比如 int i; 或者 float f,或者其他有效的变量定义。
variable-list 结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或多个结构变量。
struct tag { member-list member-list member-list ... } variable-list ;
结构类型无法将自己的类型作为其成员的类型,因为自己的类型定义尚不完整,要在结束的大括号(})后才算定义完整。所以A正确。
基于内存的对齐原则,一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。从结构体存储的首地址开始,每一个元素放置到内存中时,它都会认为内存是以它自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始(以结构体变量首地址为0计算),所以B错误。
结构类型和其他基本类型或数组类型类似的用法,可以定义在函数之中或函数之外。所以C、D正确。
登录后提交答案