常类型是指使用类型修饰符const说明的类型,常类型的变量或对
看 到const关键字,很多人想到的可能是const常量,其实关键字const并不能把变量变成常量!在一个符号前加上const限定符只是表示这个符号 不能被赋值。也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(甚至是外部)的方法来修改这个值(C专家编程.p21)。也就是说 const变量是只读变量,既然是变量那么就可以取得其地址,然后修改其值。看来const也是防君子不防小人啊!:)
2.如何使用const?
(1)修饰一般常量
一般常量是指简单类型的常量。这种常量在定义时,修饰符const
例如:
int const x="2"; 或 const int x="2";
const int n = 10; 意思很明显,n是一个只读变量,程序不可以直接修改其值。这里还有一个问题需要注意,即如下使用:int a[n];在ANSI C中,这种写法是错误的,因为数组的大小应该是个常量,而n只是一个变量
(2)修饰常数组
定义或说明一个常数组可采用如下格式:
int const a[5]={1, 2, 3, 4, 5};
const int a[5]={1, 2, 3, 4, 5};
(3)修饰常指针
const int *A; file://const修饰指向的对象,A可变,A指向的对象不可变
int const *A; file://const修饰指向的对象,A可变,A指向的对象不可变
int *const A; file://const修饰指针A, A不可变,A指向的对象可变
const int *const A; file://指针A和A指向的对象都不可变
(4)修饰函数的返回值:
const修饰符也可以修饰函数的返回值,是返回值不可被改变
const int Fun1();