【发布时间】:2021-07-10 04:08:05
【问题描述】:
我想知道为什么 std::string::c_str() 会返回 const char * 类型,即使 sting 是 char 数组类型。
string s("Hello");
有一个字符串s。 它由一个字符型数组和
s[1] = 'a';
我也可以像上面那样改变元素。 但是,如果我调用 c_str() 来知道字符串对象中字符串的起始地址,它会返回 const char * type。
因此,我必须使用 strcpy() 将其转换为 char 类型的数组。
为什么会返回 const 类型?
【问题讨论】:
-
这就是封装的一般工作方式。它管理自己的内存,你不能直接修改它。只有通过它为您提供的公共成员函数。
-
感谢您的友好回答。祝你有美好的一天。