zoukankan      html  css  js  c++  java
  • 学习1.2

    const 符号常量;
    (1)const int *a
    (2)int const *a
    (3)int * const a
    说明上面三种描述的区别;

    测试原代码:

    #include<iostream>
    using namespace std;
    int main(int argc, char* argv[])
    {
    int b = 2;
    const int *a = &b;
    const int c = 3;
    int d = 4;
    }
    (1)针对第一种情况:

    #include<iostream>
    using namespace std;
    int main(int argc, char* argv[])
    {
    int b = 2;
    const int *a = &b;
    const int c = 3;
    int d = 4;
    *a = d;
    }
     error C3892: “a”: 不能给常量赋值

    #include<iostream>
    using namespace std;
    int main(int argc, char* argv[])
    {
    int b = 2;
    const int *a = &b;
    const int c = 3;
    int d = 4;
    a
    = &d;
    }
    运行正确:a = 4(d的值)

    因此对于这种情况来说可以改变a的地址,也就是说a是个变量;但是不能*a却是个常量,不能直接改变*a的值。

    (2)

    #include<iostream>
    using namespace std;
    int main(int argc, char* argv[])
    {
    int b = 2;
    int const *a = &b;
    const int c = 3;
    int d = 4;
    *a = d;
    cout
    << *a<< endl;
    }
    error C3892: “a”: 不能给常量赋值
    代码
    #include<iostream>
    using namespace std;
    int main()
    {
    int b = 2;
    int const *a = &b;
    cout
    << a <<endl;
    const int c = 3;
    int d = 4;
    a
    = &d;
    cout
    << a <<endl;
    int e =5;
    a
    = &e;
    cout
    << a <<endl;
    cout
    << *a<< endl;
    }
    这样都可以,说明a也是个变量,只有*a是个常量。

    (3)

    #include<iostream>
    using namespace std;
    int main()
    {
    int b = 2;
    int * const a = &b;
    cout
    << a <<endl;
    const int c = 3;
    int d = 4;
    a
    = &d;
    }
    error C3892: “a”: 不能给常量赋值

    a是个常量,不能被赋值。

    #include<iostream>
    using namespace std;
    int main()
    {
    int b = 2;
    int * const a = &b;
    cout
    << a <<endl;
    const int c = 3;
    int d = 4;
    *a = d;
    }
    ok,*a是个变量

    const int * const a对于这种写法,a和*a都是常量,都不能被改变!

  • 相关阅读:
    CentOS 8配置神奇的自动挂载光驱文件夹misc
    Linux预定义通配符及实例
    history历史记录增加显示时间和用户
    CentOS 8 命令行更改系统语言
    使用screen实现多终端同步显示
    在MobaXtrem使用CentOS 上的图形工具
    CentOS中id前10的用户
    添加硬盘后不重启使系统识别新硬盘
    bash默认启用的内部命令
    九、分页查询
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/1914923.html
Copyright © 2011-2022 走看看