18.以下对结构体类型叙述错误的是()。 A.结构体成员可以是其它结构体变量 B.结构体成员可以是自身结构体变量 C.结构体成员可以是其它结构体指针 D.结构体成员可以是自身结构体指针
时间: 2024-08-12 10:09:01 浏览: 77
在C语言中,结构体类型描述的是数据的集合,其成员可以包括不同类型的变量,包括其他结构体、基本数据类型、指针等。根据这些规则:
A. 结构体成员可以是其它结构体变量,这是正确的,因为可以通过包含另一个结构体的实例来组合数据。
B. 结构体成员可以是自身结构体变量,这也是正确的,可以嵌套定义。
C. 结构体成员可以是其它结构体指针,这也是允许的,因为可以使用指针引用和操作其他结构体。
D. **结构体成员可以是自身结构体指针**,这个选项看起来可能有歧义,因为通常情况下,结构体成员是指向该结构体自身的指针(self-referential pointer),即struct类型的指针,但并不是说结构体内部可以有一个指向自身的成员。所以,如果指的是可以有指针类型成员,它可以是任何结构体类型,包括自身,但不是“自身结构体指针”(self-referential struct)。
所以,描述错误的是**D. 结构体成员可以是自身结构体指针**,这可能是想要表达“结构体内部可以有一个指向自身的指针”的意思,而不是结构体成员就是结构体本身的指针。正确表述应该是“结构体内部可以包含指向自身结构体的指针”。
相关问题
设有以下说明语句,则下面的叙述中错误的 struct ex(int x,float y).1.example为结构体类型名 2.struct是结构体类型的关键字3. ex是结构体名 4.×,y都是结构体成员名
下面的叙述中错误的是:struct ex(int x,float y)。
这是因为这个语句既不是声明结构体类型,也不是定义结构体变量,语法错误。正确的结构体类型定义应该是:
```
struct example {
int x;
float y;
};
```
其中,struct 是结构体类型的关键字,example 是结构体类型名,x 和 y 是结构体成员名。
有以下的结构变量定义语句: struct student { int num; char name[9]; } stu; 则下列叙述中错误的是( )。 A.结构类型名为student B.结构类型名为stu C.num是结构成员名 D.struct是C的关键字
选项 B 是错误的。
原因:
- 选项 A 正确,结构类型名为 student。
- 选项 C 正确,num 是结构成员名。
- 选项 D 正确,struct 是 C 的关键字,用于定义结构体类型。
在结构体变量定义语句中,变量名应该放在类型名后面,因此选项 B 是错误的。正确的结构体变量定义应该是:
```c
struct student {
int num;
char name[9];
} stu;
```
其中,类型名为 student,变量名为 stu。
阅读全文