原文链接:
http://www.cnblogs.com/beanmoon/archive/2012/09/23/2698987.html
先看一段代码:
1 | char greeting[] = “Hello”; |
关于定义的阅读,一直以为这段解释很不错了已经,即以和const的相对位置来判断:
const语法虽然变化多端,但并不莫测高深。如果关键字const出现在左边,表示被指物是常量;如果出现在右边,表示指针自身是常量;如果出现在两边,表示被指物和指针两者都是常量。
如果被指物是常量,有些程序员会将关键字const写在类型之前,有些人会把它写在类型之后、*之前。两种写法的意义相同,所以下列两个定义相同:
1 | const int* w; |
后来在百度知道上看到另一段挺有意思的解释:
其实很简单,const和*的优先级相同
且是从右相左读的,即“右左法则”
其实const只是限定某个地址存储的内容不可修改
比如:
1 | int *p; //读作p为指针,指向int,所以p为指向int的指针 |