理解const的关键是一定要清楚,指针变量和它所指向的内存空间变量,是两个完全不同的概念。
看const 是放在*的左边还是右边,我们知道*是取内容符号,放在左边则修饰的是内存空间变量,放在右边则修饰的是指针变量。在一个函数中,如果我们不需要对一个入口参数做修改,也就是这个这个入口参数不做左值的时候,我们最好使用const修饰一下。
int main()
{
const int a;
int const b;
const char *c;
char *const d;
const char * const e;
return 0;
}
第一个和第二个都一样,代表一个常整形数,第三个const在*号左边,修饰的c指针所指向的内存空间。因此所指向的内存空间数据不能修改,但是本身是可以修改的。第四个 d修饰的指针d,指针常量不能修改,但是它所指向的内存空间是可以被修改的。
e的话都不能进行修改。
但是使用const有哪些好处呢?
我们可以对一些变量进行限制,防止其被无意识的修改。
可以比较直观的了解参数的输入和输出特性。