用C ++做到这一点
char* cool = "cool";
编译正常,但警告我:
从字符串常量到char *的弃用转换。
我永远不会在C上使用C样式的字符串std::string
,但以防万一我被问到以下问题:
声明不带const
修饰符的C样式的字符串是否不好?如果是这样,为什么?
是的,此声明是不好的做法,因为它允许通过写入字符串文字来意外触发未定义行为的多种方式,包括:
cool[0] = 'k';
strcpy(cool, "oops");
另一方面,这很好,因为它分配了一个非常量char数组:
char cool[] = "cool";
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句