const
const常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。
const和#define的区别:
const常量具有类型,编译器可以进行安全检查;宏定义没有数据类型,只是简单的字符串替换,不能进行安全检查。
- const默认作用于其左边的东西,否则作用于其右边的东西
const int*
const修饰右边的int,常量整型,*修饰int,指向int的指针。加起来含义是:这个指针指向一个int,int由于被const修饰,所以int对应的数字(指针所指向的内容)不能被改变,但是指针指向的地址可以改变。
int const*
const左边有int,修饰int,和const int*一样。
int* const
const修饰左边的*,因此含义是,指向int的指针,指针的地址被const修饰,不可以改变,但是指针所指向的内容可以改变。
const int* const
第一个const修饰右边紧挨的int, 第二个const修饰左边的*,因此这个指针的地址和内容都是固定的。
int const* const
同上
int const* const*
指向上面那个东西的指针