天天看点

《C和指针》学习笔记---数据1第3章 数据

第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是左结合性,就可以轻松弄清是指向整型的常量指针,还是指向整型常量的指针

继续阅读