首页 > 其他 > 详细

int *const p,const int *p和int const *p的区别

时间:2021-08-08 15:52:48      阅读:19      评论:0      收藏:0      [点我收藏+]

原文地址: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;
}

结果:

技术分享图片

 

int *const p,const int *p和int const *p的区别

原文:https://www.cnblogs.com/yifengs/p/15114570.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!