int *const p,const int *p和int const *p的区别
在学习c语言的过程中,可能我们很少见到int int *const p,const int *p和int const *p,但当我们在学习c++的过程中,就会遇到这些模糊不清的概概念,如果没搞清楚它们的区别,我们在使用过重中会很痛苦,但如果我们搞懂了它们之间的区别之后,用起来非常方便。
首先int const*p=const int p;都表示p的值不能改变,而p(即地址)是可以改变的;
#include<iostream>
using namespace std;
int main()
{
int a=100;
int* const c=&a;
cout<<*c<<endl;
const int *d=&a;
cout<<*d<<endl;
}
//输出的值都是100
至于int *const p;
恰恰和上面的相反,即int const p表示 p(地址)是常量,不可改变,但是p的值可以改变
#include<iostream>
using namespace std;
int main()
{
int a=100,b=200;
int *const c=&a;
cout<<*c<<endl;
//c=&b;
//cout<<*c<<endl; //去掉//后不能运行,因为修改了c(地址)的值
*c=b;
cout<<*c<<endl; //但是,这是可以运行的,因为我修改的是*c的值,不是修改的地址
}
还没有评论,来说两句吧...