zoukankan      html  css  js  c++  java
  • int *const p,const int *p和int const *p的区别

    原文地址:https://blog.csdn.net/u013412497/article/details/24495271

    在学习c语言的过程中,可能我们很少见到int int *const p,const int *p和int const *p,但当我们在学习c++的过程中,就会遇到这些模糊不清的概概念,如果没搞清楚它们的区别,我们在使用过重中会很痛苦,但如果我们搞懂了它们之间的区别之后,用起来非常方便。

    首先int const*p=const int *p;都表示*p的值不能改变,而p(即地址)是可以改变的;

    void test001()
    {
        int a = 10;
        const int* re = &a;    //指针*re不能改变 re的值可以改变
        int const* re2 = &a;
        //*re = 30;    //err    *re指向内容不能改变
        cout << "re=" << re << ",*re=" << *re << endl;
        cout << "re2=" << re2 << ",*re2=" << *re2 << endl;
        int c = 20;
        re = &c;
        re2 = &c;
        cout << "re=" << re << ",*re=" << *re << endl;
        cout << "re2=" << re2 << ",*re2=" << *re2 << endl;
    }

    结果:

    至于int *const p;

    恰恰和上面的相反,即int *const p表示 p(地址)是常量,不可改变,但是*p的值可以改变

    void test002()
    {
        int a = 10;
        int * const re = &a;    //指针re不能变 但是*re指向的内容可以变
        *re = 100;
        cout << "re=" << re << ",*re=" << *re << endl;
        int c = 20;
        //re = c;    //err        指针地址不能变
        *re = c;
        cout << "re=" << re << ",*re=" << *re << endl;
    }

    结果:

  • 相关阅读:
    每日一题-mysql(持续更新)
    http面试问题集锦
    存储测试简析
    横向越权测试—安全漏洞
    性能数据的准备-Jmeter
    获取当天七天时间
    vue生命周期
    vue的全选与反选
    filter兼容问题
    Http与Https
  • 原文地址:https://www.cnblogs.com/yifengs/p/15114570.html
Copyright © 2011-2022 走看看