【发布时间】:2011-12-15 18:08:38
【问题描述】:
我知道它们是不同的,我知道它们有何不同,并且我阅读了所有我能找到的关于 char* 与 char[] 的问题
但所有这些答案都无法说明何时应该使用它们。
所以我的问题是:
什么时候使用
const char *text = "text";
你什么时候使用
const char text[] = "text";
有什么指导方针或规则吗?
举个例子,哪个更好:
void withPointer()
{
const char *sz = "hello";
std::cout << sz << std::endl;
}
void withArray()
{
const char sz[] = "hello";
std::cout << sz << std::endl;
}
(我知道std::string 也是一个选项,但我特别想了解char 指针/数组)
【问题讨论】:
-
他们不一样?我一直认为
[]是*的语法糖 -
@Dave:它们是不同的:见stackoverflow.com/questions/7082175/…。指针版本使用 6 字节 + 指针大小,数组版本使用 6 字节。
-
@Nikko:为什么要加C标签?