首页 > 其他 > 详细

const int *p;int *const p;int const *p;const int *const a;

时间:2020-01-30 19:45:52      阅读:72      评论:0      收藏:0      [点我收藏+]

const int *p;和int const *p;

二者是一样的,其中const 修饰的是int,表示指针所指的对象不可以通过该指针被改变(但是不代表这个对象不可以通过其他途径改变),但是指针本身可以被改变。

eg:

#include<bits/stdc++.h>
using namespace std;
int a=1;
int b=2;
int const *x=&a;
const int *y=&a;
int main(){
    //指针所指的对象可以从a指向b
    x=&b;
    y=&b;

/*  编译错误,指针所指对象的值不可以被改变。
    *x=10;
    *y=10;
*/
    b=3;a=4;
    cout<<*x<<" "<<*y<<" "<<a<<" "<<b<<endl;
    //输出3 3 4 3
    //从这里看出,虽然无法通过指针修改对象,但是对象的值还是可以改变。
}

 

int *const p;

表示可以通过该指针修改所指的对象的值,但是指针本身不能改变。

eg:

#include<bits/stdc++.h>
using namespace std;
int a=10;
int b=5;
int *const p=&a;
int main(){
    *p=0;
    //p=&b; 错误,指针不可以被改变
    cout<<a<<" "<<b<<" "<<*p<<endl;
    //输出0 5 0
}

const int *const a;

既不能通过指针修改所指的对象的值,又不可以改变指针本身。

const int *p;int *const p;int const *p;const int *const a;

原文:https://www.cnblogs.com/caigua/p/12243330.html

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