您的位置:首页 > 其它

常量指针 与 指针常量

2016-08-11 15:28 162 查看
int main()
{
int i = 1;
int j = 2;
int *const p1 = &i;	// 常量指针 : 指针本身是常量
int const *p2 = &j;	// 指针常量 : 指向的内存是常量

*p1 = 3;
//	p1 = &j;	// Error
p2 = &i;
//	*p2 = 3;	// Error

return 0;
}


以上代码供参考。

PS:这两个名称其实网上说法不一,有人颠倒着说,有人这么说。

咱们不纠结怎么称呼,只要理解就好。 (我找了一下《C程序设计语言》[毕竟C语言之父,人家是权威] 里,貌似没有明确命名,所以我就不敢下定论了)

我是这么记忆的:

从右往左看,谁先出来,读谁。例如:int * const p 从右往左看,先 const 后 * 所以就 常量指针。

常量指针:分开读,常量、指针,意思就是这个指针是常量,所以指针本身的值不能改;

指针常量:分开读,指针、常量,先指针,后常量,指针指向一个常量,所以常量的值不能改。

注:如果您能找到官方的对两个称谓的规范,请指正,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息