25 条题解
-
0
- 以下数组定义,符合 C++语言语法的是( )。
○ A.
int a[];○ B.int b['3'];○ C.int c[3.0];○ D.int[3] d;
答案是 B。
来,作为教练,我带你像“编译器”一样去审核这四份“内存申请单”,看看谁不合规矩。
1. 审核 A:
int a[];—— 驳回!- 理由:“空头支票”。
- 你告诉计算机:“我要申请一块地建数组。”
- 计算机问:“你要多大?”
- 你说:“不知道,我不写,我也不放东西进去。”
- 教练注解:数组必须知道大小。要么你直接写数字(如
a[10]),要么你立刻塞数据进去让它自己数(如a[] = {1,2})。啥都不干是不行的。
2. 审核 C:
int c[3.0];—— 驳回!- 理由:“非法切割”。
- 数组的格子必须是整数个。你见过谁买“3.0 个”或者“3.5 个”座位的吗?
3.0是小数(浮点数),C++ 的数组下标不支持小数。
3. 审核 D:
int[3] d;—— 驳回!- 理由:“方言错误”。
- 这是 Java 或 C# 语言的写法。
- 在 C++ 里,方括号
[]是长在变量名后面的(像尾巴),而不是长在类型名后面的。 - 正确写法:
int d[3];
4. 审核 B:
int b['3'];—— 通过!- 理由:“字符的伪装”。
- 这看起来很怪,但请回忆我在前面讲过的:
char类型本质上就是整数! '3'是一个字符常量。在 ASCII 码表中,字符'3'对应的整数值是 51。- 所以,这句话在编译器眼里就是:
int b[51];。 - 合情合理合法,申请了 51 个整数的空间。
- 这看起来很怪,但请回忆我在前面讲过的:
最终结论
只有 B 符合 C++ 的语法规则。
- 以下数组定义,符合 C++语言语法的是( )。
○ A.
信息
- ID
- 4769
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者