use*_*255 3 c++ arrays string pointers const
我想知道以下定义之间的差异:
// file.cpp:
namespace n
{
static char const * const str1 = "hello";
static char const str2[] = "hello";
}
Run Code Online (Sandbox Code Playgroud)
我想要的行为,我认为它们都提供:
这种语言是否有任何差异?如果存在依赖于实现的行为,我如何调查不同平台上的差异?
(对于这个例子,我对将这些行为与std :: string选项进行对比不感兴趣,但是如果你认为其他读者会感兴趣,也可以随意谈论它.)
小智 5
是的,有:一个仍然是一个数组,另一个是指针.指针和数组不一样.
一个特定的方面可能是sizeof运算符的使用- 对于指针,它不会导致字符串的长度,它将在数组上(当然也可以计算终止NUL字符).