您的位置:首页 > 其它

常量指针与指针常量

2015-06-21 17:28 190 查看
在c++中,指针常量与常量指针是经常听到的概念,很多学生一开始都搞不太清楚:

1、如果指针不可以改变就叫指针常量,如 int *const p = &a;这里的p++或者将p指针其他的地址都的错误,所以叫指针常量

2、如果值不可以改变就叫常量指针,如const int *p = &a;这里如果执行*p = b;那么报错,所以叫常量指针

下面代码演示:

#include<iostream>
using namespace std;
void test1(){
int a = 10;
int * const p = &a;//指针常量,p不可改变,p++ ERROR
*p = 100;//可以通过*p重新给a赋值
cout<<*p<<endl;
}
void test2(){
int a  = 10;
int b = 100;
const int *p = &a;//常量指针,*p不可以改变
p = &b;//p可以改变指向
cout<<*p<<endl;
}
int main(){
test2();
return 0;
}
总结:很多同学可能还是搞不太清楚;这里给个口诀:const后面跟谁谁就不可以改变;

int *const p;//const 后面跟的p那么p就不可以改变

const int * p;//const 后面跟的*p那么*p就不可以改变

注:const int 等于 int const ;既 const int *p = int const *p
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: