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都是常量,都不能被改变!

  • 相关阅读:
    Java:IO流之字符流缓冲区详解
    Java:IO流之字符流Reader、Writer详解
    Java:IO流之字节流InputStream、OutputStream详解
    iOS:Git分布式版本控制器系统
    Java:日历类、日期类、数学类、运行时类、随机类、系统类
    Java:泛型
    Java:静态导入
    Java:集合for高级循环遍历
    一个相当好的状态机(DFA, 确定有限状态机)的编码实现,相当简洁漂亮
    android 开发必用的开源库
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/1914923.html
Copyright © 2011-2022 走看看