const修饰指针的理解

const修饰指针有三种情况:

1、const修饰指针-------常量指针:

int a=10;
const int *p=&a;

特点:指针的指向可以修改,但是指针指向的值不可以修改。

int a=10,b=100;
const int *p=&a;
//常量指针指向的值不能改会报错
*p=50;//报错

//指针的指向可以修改
p=&b; //不会报错,此时*p的值输出为100

2、const修饰常量-------指针常量:

int a=10;
int *const p=&a;

特点:指针的指向不能修改,指针指向的值可以修改

int a=10,b=100;
int *const p=&a;
//指针常量的指向不能够修改,修改会报错
p=&b;//报错

//指针常量指向的值可以修改
*p=50;//不会报错,此时*p的值为50

3、const即修饰指针,又修饰常量:

int a=10;
const int *const p=&a;

特点:指针的指向和指针指向的值都不能修改

int a=10,b=100;
const int *const p=&a;
//指针指向的值和指针的指向都不能改
*p=50;//报错
p=&b;//报错

猜你喜欢

转载自www.cnblogs.com/fei102461/p/12433069.html
今日推荐