我知道下面是不好的编程习惯
char * p1 = "myBad" ;
上面的内容很糟糕,因为 const "myBad"内存正被非 Const 指针指向。编译器允许 p1 支持与 C 的向后兼容性
下面的做法也是不好的吗?
char p2[]="myBadORGood";
p1 和 p2 有什么区别。编译器是否为 p2 制作非常量拷贝?我想我在某处读到 p2 很好但不确定..
最佳答案
p2
由字符串文字初始化,即它是字符串文字的拷贝,因此 p2
是非 const
没问题:
char p2[]="myGood";
关于c++ - 编程实践 char * 指向常量的指针或指向常量的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16738975/