zoukankan      html  css  js  c++  java
  • C++/C | 关于char* char[] char = new char[n]

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

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

    在VC环境下运行, VC直接禁止这样的操作通过编译, 抛出Error.

    GCC下则抛出Warning, 这是GCC下给出的warning信息:

    2.如果是在C标准下, 那么将字符串常量赋给(char*)可以正常编译通过.
    且C语言标准下,这是正常的. 但是C++中这样修改赋值则会导致程序无法正常结束. 因而更推荐的写法是(const) (char*), 这会避免后续代码中出现修改字符串常量的行为.

    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;
    

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

  • 相关阅读:
    elementUI form select验证问题
    Echart--基本属性
    Echart--饼状图
    Echart--折线图
    Echart--多个柱形图
    Echart--单个柱形图
    Echart--圆型图
    构析函数和构造函数
    心情
    图片
  • 原文地址:https://www.cnblogs.com/tedukuri/p/13046830.html
Copyright © 2011-2022 走看看