常量指针和指针常量(左数右指-const在*的哪边)

#include 

using namespace std;


int main()
{
	int a = 10;
	int b = 20;
	const int *p= &a;  //常量指针 ,修饰指向的实体,也即间访值,间访值为常量,不能修改,而指针值(地址)是可以修改的
	std::cout<<"p= &a"<

常量指针:是指向常量的指针,也即const修饰指向的实体类型,指针值(地址)可以改,但间访值不能改。如上:*p = 100;程序就会出错,因为更改了间访值。

const int *p = &a;和int const *p = &a;是一样的,可以通过这样记忆。const int a = 20;和int const a = 20;两种写法的效果是一样的,都是定义a为常量;

*******************************************************************************************


#include 

using namespace std;


int main()
{
	int a = 10;
	int b =11;
	int * const p = &a;
	*p =100;
	std::cout<<*p<

指针常量:是相对于指针变量而言的。也就是指针值(地址)不能修改,但间访值可以修改。如果   p = &b;会发生错误,因为修改了地址。


定义指针常量还是常量指针,就看const的修饰了。若const修饰指针本身,则为指针常量;若修饰的是指针类型(指向的实体类型),则为常量指针。






你可能感兴趣的:(C,plus,plus)