const总结一

关于指针const

情况一:

int i = 10;
const int* p = &i;
*p = 10 ;
//error C3892: “p”: 不能给常量赋值

情况二:

		int i = 10;
		int* const p = &i;
		p++;
		//error C3892: “p”: 不能给常量赋值

总结:编译器会提示报错。原因是 const int* 定义指针所指向的内容是常量, int* const 是定义指针为常量。

 

技巧:const在*的左边是修饰内容,const在*的右边是修饰指针。

 

思考:情况1定义了内容为常量,能否通过修改i改变i的值,也就是问用const int* 定义了p,对i是否有影响。

 

		int i = 10;
		const int* p = &i;
		i = 11;
//编译通过

结论:const int* 定义了p,指向i,对i没任何影响。

你可能感兴趣的:(c++)