C++/C | 关于char* char[] char = new char[n]

将字符串常量赋给(char*)会怎么样?

1. 先看下在C++中给(char*)赋予一个常量字符串会有怎样的结果:

在VC环境下运行, VC直接禁止这样的操作通过编译, 抛出Error.
C++/C | 关于char* char[] char = new char[n]
GCC下则抛出Warning, 这是GCC下给出的warning信息:
C++/C | 关于char* char[] char = new char[n]
2.如果是在C标准下, 那么将字符串常量赋给(char*)可以正常编译通过.
且C语言标准下,C++/C | 关于char* char[] char = new char[n]这是正常的. 但是C++中这样修改赋值则会导致程序无法正常结束. 因而更推荐的写法是(const) (char*), 这会避免后续代码中出现修改字符串常量的行为.
C++/C | 关于char* char[] char = new char[n]

2. (char*)(char[]), (char = new char[n])区别在哪?

    char *a = "12345";   // 字符串常量, 更推荐写const char*
    char b[] = "12345"; // 栈区开辟空间, 动态
    char *c = new char[6]; // 堆区开辟空间, 动态
    strcpy(c, "12345");
    delete []c;

后两种写法中都可以对字符串的内容进行修改.

原文链接: https://www.cnblogs.com/tedukuri/p/13046830.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++/C | 关于char* char[] char = new char[n]

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/198310

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午7:50
下一篇 2023年2月12日 下午7:50

相关推荐