第3章 数据
3.1 常量
ANSI C允许你声明常量,常量声明方式和普通变量声明方式一样,不同点是常量声明之后,其值不可以再修改,否则编译时会报错。
3.1.1常量声明方式
常量声明时使用关键字:const进行声明。例如:
int const a = 0;
或者
const int a = 0;
上述两个执行语句的作用相同,都是声明一个整型常量a,且无法直接再修改其值。
有其他方式可以多次修改整型常量a的值:(1)就a作为某一个函数的形参。当每次该函数被调用时,a会接受来自实参传递的值,但是在函数内部也无法直接修改a的值;(2)可以将整型常量a的地址赋值给一个整型指针,通过指针的方式修改该地址位置存储的值,从而达到改变整型常量a的值。但通常不会这么做。
3.1.2常见几种常量的声明
(1)整型常量
如3.1.1所示。
(2)
int const *pi;
pi表示其是一个指向整型常量的指针,你可以多次赋值给pi,但是不可以修改pi指向的值。
(3)
int * const pi;
pi表示其是一个指向整型的常量指针,你可以修改其指向的位置的值,但是不可以重新给pi赋予新的地址值。
(4)
int const * const pi;
该声明结合了(2)和(3)的功能,pi指向的位置的值不可以修改,也不可以重新赋予pi新的地址。
注:分析const修饰的变量声明时,记住const是左结合性,就可以轻松弄清是指向整型的常量指针,还是指向整型常量的指针