AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 世界职业院校技能大赛汽车工程系选拔理论考试题库 题目详情
CAF88E2CAFE00001135B77F0847512A7
世界职业院校技能大赛汽车工程系选拔理论考试题库
1,000
单选题

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; } ```
世界职业院校技能大赛汽车工程系选拔理论考试题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码