const关键字作用:
- const修饰的数据类型是指常类型(只读),修饰的为变量 ,变量值具有不可变性。
const int a = 20; /*变量a为整型常量,值不可更改*/
- 在函数声明中,声明为const的形参在函数被调用时会得到实参的值。即 保护被修饰的东西,防止意外的修改,增强程序的健壮性。
- 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
- const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而宏定义的常量在内存中有若干个拷贝。
- const 与指针结合
const char *pbuff or char const *pbuff:指向字符串常量的指针。可以修改指针的值,但不能修改它所指向的值(指向的字符串不可更改)。
const char * const pbuff or char *const pbuff:指向字符的常量指针,指针是常量,它的值无法修改(指针的指向不可更改),但可以修改它所指向整型的值。
const 与define区别
#define 创建名字常量的机制。允许使用字面值常量的地方都可以使用宏。eg:声明数组的长度。const变量只能用于允许使用变量的地方。