• C++笔记019:C++中的const修饰的是一个真正的常量



    原创笔记,转载请注明出处!

    点击【关注】,关注也是一种美德~


     

     

    程序一:

    我们知道数组的下标不能为变量,必须是一个确定的值。在C语言中看程序:

    #define a 10

    int main()

    {

    //第一部分

    int c=20;

    int d=10;

    int arr[c+d];

     

    //第二部分

    //int const a=20;

    //int const b=10;

    //int arr[a+b];

     

    return 0;

    }

    理所当然的编译错误,因为数组下标不能是变量。

    在C++中看相同的程序。在C++中这点没有区别,数组下标不能为变量。同样会编译错误。

     

     

    程序二

    继续在C语言中看程序修改:

    //#define a 10

    int main()

    {

    //第一部分

    //int c=20;

    //int d=10;

    //int arr[c+d];

     

    //第二部分

    int const a=20;

    int const b=10;

    int arr[a+b];

     

    return 0;

    }

     

    发现编译错误!错误原因跟修改前一致!

    也就是说:C语言中const定义的a、b实质并不是常量!还是变量所以称之为“常变量

    在C++中看相同的程序:

    int main()

    {

    //第一部分

    //int c=20;

    //int d=10;

    //int arr[c+d];

     

    //第二部分

    int const a=20;

    int const b=10;

    int arr[a+b];

     

    return 0;

    }

     

    编译通过!!!

    结论

    C++中的const修饰的是一个真正的常量而不是C中变量(只读。C++中在const修饰的常量编译期间,就已经确定下来了。

     

     


    原创笔记,转载请注明出处!

    更多精彩请关注微信公众号:依法编程


     

     

     
  • 相关阅读:
    纯CSS打造圆角Table效果
    [RabbitMQ+Python入门经典] 兔子和兔子窝[转]
    salesforce 调用webservice
    maven+spring+cxf编写web service
    Appfuse 教程
    eclipse的maven project,如何添加.m2里的那些jar包?
    java fullstack 框架
    Maven Jetty Plugin运行配置jetty:run
    Appfuse下载及安装步骤
    fullstack设计
  • 原文地址:https://www.cnblogs.com/tyyhmtyyhm/p/9005695.html
Copyright © 2020-2023  润新知