← 2022 · 海光 笔试

推荐答案 测试一下

以下C语言声明语句,其中阐述正确的是

A、第一条语句声明x是个int类型的指针 B、第一条语句声明x是个int类型的数据 C、第二条语句声明y是个int类型数组,长度未确定 D、第二条语句声明y是个int类型数组,长度确定
多选题 中等 笔试真题多选

参考答案

正确选项为A和C。 解析: - 第一条语句 `extern int *x;` 声明了标识符 `x` 是一个指针,该指针指向 `int` 类型的数据。`extern` 关键字表示这是一个外部声明,不分配存储空间,但明确指定了 `x` 的类型是 `int*`(指向整型的指针)。因此选项A正确,选项B错误(B误将指针解释为整型数据)。 - 第二条语句 `extern int y[];` 声明了标识符 `y` 是一个 `int` 类型的数组,但未指定数组长度。在C语言中,这种不完整类型的数组声明允许在定义时再确定长度,或者由外部定义提供。因此选项C正确,选项D错误(D声称长度确定,与声明未指定长度矛盾)。 易错点: 1. `extern` 关键字不影响类型本身,仅改变链接属性和存储类别,指针声明仍明确为指针类型。 2. 数组声明中省略长度表示不完整类型,仅当定义或后续初始化时才得知大小。 3. 注意区分“声明”与“定义”:声明仅引入类型和名字,不分配空间;定义会分配空间并可能指定大小。

涉及知识点

  • extern关键字的作用
  • 指针的声明与类型识别
  • 数组声明中省略长度的含义
  • 不完整类型与完整类型
← 上一题
登录后反馈错题
下一题 →