[C语言]解析const,、static、volatile

一、const, static与volatile

1、CONST

const的用法(定义和用途):Const就是常量修饰符, const 变量应该在声明的时候就进行初始化,如果在声明 常量的适合没有提供值,则该常量的值是不确定的,且无法修改。
const 修饰主要用来修饰变量、函数形参和类成员函数:
        1)const 常量:定义时就初始化,以后不能更改。
        2)const 形参: func(const int a);该形参在函数里不能改变
        3)const 修饰类成员函数:该函数对成员变量只能进行只读操作,就是 const类成员函数是不能修改成员变量的数值的。
基本作用:​const ​用于定义常量,如果一个变量被 const ​修饰,那么它的值就不能再被改变。
修饰:一般变量
const int n = 5;
// 或者
int const n = 5;
// n的值不能被改变  如n = 6;

修饰:常量指针与指针常量

int a = 5;
const int *n = &a;
// 或者
int const *n = &a;
// 或者
int *const n = &a;
// 或者
const int *const n = &a;

//const int *n = &a;​ 与 int const *n = &a;​,这两种写法是等价的,都表示 n ​所指向的地址可以被改变,但指向地址中的值不能被改变,被称为常量指针:
n = &b;//n 所指向的地址可以被改变;

//​int *const n = &a;​,表示 n ​所指向地址中值可以被改变,但指向的地址不能被改变,被称为指针常量
 *n = b;//n 所指向地址的值可以被改变

//​const int *const n = &a;​,是以上两种的结合版,表示 n ​的所指向的地址,以及所指向地址中的值,均不能被改变,被称为指向常量的常指针:
// 错误,n 所指向的地址不能被改变;
// n = &b;
// *n = b;

修饰:函数参数与修饰函数返回值
        当 const ​关键字修饰函数的参数和返回值时,作用同样是防止修改。

修饰:函数参数
        在传值调用时,const 修饰参数表示防止修改参数的值。
        在传址调用时,const 修饰参数的具体意义根据该参数具体是常量指针还是指针常量或是指向常量的常量指针有所不同。
        常量指针作为参数是防止在函数中修改其指向常量的值,例如:char *strcpy(char *dest, const char *src);
        假如定义该函数时,修改参数 src ​的指向地址中的值,编译器就会

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值