指针常量和常量指针的区别

指针常量 :指向常量的指针。不可以改变指向某变量的值,可以改变指向某个变量。
const int *p1;
int const *p1;两者等价。
方便理解:
1.从右往左看,*p1是指针,const是常量,指针常量。
2.”指针常量“后面的“常量”固定变量的值不变。
3.改变地址
*****************************************************
常量指针 :是指针变量的值一经初始化,初始化是必要的。不可以改变指向某个变量,可以改变已经指向某变量的内容。
int *const p2=&a;//必须初始化,指向一个变量,不能改变
方便理解:
1.从右往左看,p2是个变量,const是常量,*指针,常量指针。
2.”常量指针“后面的“指针”固定指向变量的地址不变
3.改变内容
-------------------------------------------------------------
例子
#include<iostream>
using namespace std;
int main(){
	int a = 100;
	int b = 45;
	int const *p1;
	int *const p2=&a;//必须初始化,指向一个变量,不能改变
	cout << "以下关于指针常量p1的作用:" << endl;
	p1 = &b;
	//p2 = &b;错误,不能指向其他变量
	cout << "b的地址:" << &b << endl;
	cout << "指针常量(int const *p1;)p1指向b的地址:" << p1 << endl << endl;
	//*p1 = 8;错误,不能改变变量的内容,可以有指向任意一个变量

	cout << "以下关于常量指针p2的作用:" << endl;
	*p2 = 8;
	cout << "p2指向a的地址的内容:" << *p2<< endl;
	cout << "a的值被常量指针(int *const p2=&a)改变:"<<a << endl;
	return 0;
}
结果:


猜你喜欢

转载自blog.csdn.net/chen1083376511/article/details/78442059
今日推荐