const 关键字

1.const关键字 用于修饰变量,使这个变量不能被修改

const修饰的变量叫做常变量;

例如 :

int a=100;
a=200;
printf("%d",a);

此时控制台打印的结果就是200;

但如果用关键字const修饰变量,就变量就不会被修改,而且编译器会报错

例如:

int a=100;
a=200;
printf("%d",a);

此时编译器会报错;

注:被const修饰的变量还是变量,不是常量,只是值不能被修改。

而且在C99之前是不支持变长数组,也就是不能当作常量或者一个数字来使用

例如:

const int a=10;
int arr[n];

如果这样定义数组是不合法的,编译器会包报错。

但是可以用指针的方法绕过,直接修改变量a的值

const int a=100;
int *p = &a;
*p = 200;
printf("%d",a);

这样打印出的变量a的值就是200;

可以用一个形象的话开理解:高启强不好办的事情,交给老墨去办。

2.const 可以修饰指针变量,使变量不能通过指针的方式修改变量的值。

有三种修饰情况

 (一),当const放在指针*的左边(int const * p或const int * p ),会限制* p 的修改,但是可以修改指针变量 p 的地址 ,也就是p = &b 合法。

int a=100,b=300;
int  const * p = &a;
* p = 200;        //这一行编译器会报错
 p = &b;         // 这一行合法可以执行,意思为改变指针变量 p 的指向。
printf("%d",a);

    此时 编译器会报错。

 (二)当const放在*之后,会限制指针变量p的修改,也就是p = &b这行代码不合法;

 与上面的代码刚好相反。

(三)当const 在 * 的前后都加上const,那么两种修改的方式都不能用

也就是(int const * p const = &a);

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值