面试题答案
一键面试- 错误指出:
- 在代码
p[0] = 'H';
这一行存在错误。
- 在代码
- 原因解释:
- 变量
p
被声明为const char *
,这意味着p
所指向的内容是常量,不能被修改。这里p
指向的字符串字面值"hello"
存储在只读内存区域。当尝试通过p
修改其指向的内容(即p[0] = 'H';
)时,这会导致运行时错误,因为违反了常量的不可修改特性。如果想要修改字符串内容,p
的声明应该是char *p = "hello";
(不过这种方式在C++中不推荐,因为将字符串字面值赋值给char*
会导致未定义行为,更好的方式是使用std::string
或在栈上分配一个字符数组,如char arr[] = "hello"; char *p = arr;
)。
- 变量