单选题
C++中,如何定义常量字符串?
A
const char* str = 'Hello';
B
char str[] = 'Hello';
C
string const str = 'Hello';
D
以上都可以
答案解析
正确答案:A
解析:
好的,让我们来详细解析这道题。
### 题目背景
在 C++ 中,定义常量字符串有多种方式,但每种方式都有其特定的语法和用途。我们需要理解每个选项的含义,并判断哪个选项是正确的。
### 选项分析
#### A. `const char* str = "Hello";`
- **解释**:`const char*` 定义了一个指向常量字符的指针。`"Hello"` 是一个字符串字面量,它在内存中是一个以空字符 `\0` 结尾的字符数组。`const char*` 指向这个数组的起始位置。
- **正确性**:这是定义常量字符串的一种常见方式。`str` 是一个指向常量字符的指针,不能通过 `str` 修改字符串的内容。
#### B. `char str[] = "Hello";`
- **解释**:`char str[]` 定义了一个字符数组,并用字符串字面量 `"Hello"` 初始化它。数组 `str` 包含了字符串 `"Hello"` 的所有字符,包括结尾的空字符 `\0`。
- **正确性**:虽然这定义了一个字符串,但它不是常量字符串。数组 `str` 的内容是可以被修改的。
#### C. `string const str = "Hello";`
- **解释**:`string` 是 C++ 标准库中的一个类,用于处理字符串。`string const` 定义了一个常量 `string` 对象,初始化为 `"Hello"`。
- **正确性**:虽然这定义了一个常量字符串对象,但 `string const` 的写法不常见,通常会写成 `const string str = "Hello";`。此外,`string` 类型的常量字符串与 `const char*` 类型的常量字符串在底层实现上有所不同。
#### D. 以上都可以
- **解释**:如果选择这个选项,意味着上述三种方式都可以定义常量字符串。
- **正确性**:根据前面的分析,只有选项 A 正确地定义了一个常量字符串,而选项 B 和 C 不完全符合题意。
### 答案解析
正确答案是 **A**。`const char* str = "Hello";` 是定义常量字符串的标准方式。其他选项要么不是常量字符串(B),要么虽然可以定义常量字符串但不常见(C)。
### 示例
```cpp
#include
#include
int main() {
// 选项 A
const char* str1 = "Hello";
// 选项 B
char str2[] = "Hello";
// 选项 C
const std::string str3 = "Hello";
// 输出
std::cout << "str1: " << str1 << std::endl;
std::cout << "str2: " << str2 << std::endl;
std::cout << "str3: " << str3 << std::endl;
// 尝试修改字符串
// str1[0] = 'h'; // 错误:str1 是常量指针,不能修改
str2[0] = 'h'; // 正确:str2 是可修改的字符数组
// str3[0] = 'h'; // 错误:str3 是常量字符串对象,不能修改
return 0;
}
```
相关题目
单选题
汽车交流发电机发出的电压是通过稳压器将其稳定在一定范围的。( )
单选题
一般火花塞的间隙为0.8-1mm。
单选题
拆装火花塞时可以在热车情况下拆装。()
单选题
逐缸点火系统中可以运用曲轴位置传感器和凸轮轴位置传感器的信号来进行判缸点火。()
单选题
点火系统中为防止爆震,因此不可能出现一个气缸用两个火花塞的情况.()
单选题
汽油机汽油供给装置的作用是完成汽油的存储、滤清和输送。该说法是否正确。( )
单选题
为避免燃油管路中的燃油流回油箱保证系统内有一定的残压,因此在油泵内设置了限压阀。( )
单选题
蓄电池连接线损坏时,可以使用绝缘胶带进行修复( )。
单选题
在连接蓄电池时,可以使用铁丝或其他导线进行临时连接( )。
单选题
电动后视镜故障时,可以通过检查熔断器和断电器(过载保护)来确定原因( )。
