【总结】const关键字的用法及作用

在C语言和C++中,我们都会用到const,并且对于static有不同的用法和作用。下来我将就C语言和C++两个不同的编译环境分别对const的用法和作用进行讲述。

1、在C语言中const的使用

(1)const修饰的变量称为常变量。此时它不能作为左值。

(2)不能定义数组大小

(3)其他性质和普通变量一样。

eg:    

    const int a = 10;
    int *p = (int *)&a;
    *p = 20;
    printf("%d\n",a);//此时a的值被修改为20;

2、在C++中const的使用

(1)把加了const的变量称为常量

(2)C++中const的处理机制:在编译阶段把所有用到const常量的地方全部替换成常量的初始化值。

(3)必须初始化。如果不初始化无法进行替换

(4)能定义数组大小

(5)杜绝间接访问来修改常量内存的风险。也就是说不能有被修改的风险,如果有编译不通过。

注意:const int *p 和int * const p是有很大区别的。

           const int *p中const修饰的是*p;

           int * const p中const修饰的是p;

(6)const可以修饰成员方法,成为常成员方法。在常成员方法中只能访问其他成员,不能修改其他成员;普通对象和常对象都可以调用常方法,但是常对象只能调用常方法。

(7)const可以修饰成员变量,成为常成员变量,因此他们的初始化必须写在构造函数的初始化列表当中,否者编译会报错。

注意:C++中const修饰的变量也可以是常变量(和C语言中一样)。代码如下:

          int b = 10;
                 const int a = b;
                 int *p = (int *)&a;
                 *p = 20;
                 std::cout<<a<<std::endl;//此时a被修改为20。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值