c++中指针与const
1.const int * p (与 int const * p意义一样)
<含义:指针p指向的地址是可变的,但是呢一旦p指向的地址确定后,我们就不能通过p来改变地址中 的元素了,来看个程序加深一下理解吧!>
#include<iostream>
using namespace std;
int main()
{
int x=1,y=2;
const int * p;
p=&x;
cout<<*p<<endl;
// *p=3 错误,此时p指向的对象是常量,不能被改变
x=3; //但是我们仍可以通过变量的本体来改变变量的值哦
cout<<*p<<endl;
p=&y; //p的值仍然是可以被改变的
cout<<*p<<endl;
return 0;
}
2. int * const p
<含义:这是一个常指针,也就是说p指向一个地址后就不能被改变了,但是p指向的地址中的对象是可以改
变的,再来看个程序吧!>
#include<iostream>
using namespace std;
int main()
{
int x=1,y=2;
int * const p;
p=&x;
cout<<*p<<endl;
p=&y; //错误,p指向x后就不能指向其他的地址了
*p=3;
cout<<*p<<endl; //正确,*p是可变的
}
3. const int * const p
<由上面的两个程序,可以看出,这样定义后p和*p都不能被改变了>