C++进化后的const分析

--事物的难度远远低于对事物的恐惧!

    对于const关键字,在C进阶分析中,我们知道,const在C语言中有如下特性:
    -const修饰的变量是只读的,其本质还是变量而,也就是只读变量(依旧可以通过别的手段修改const变量)
    -const修饰的局部变量在栈上分配空间
    -const修饰的全局变量或静态局部变量,在只读存储区分配空间    

    -const只在编译期有用,在运行期无用

    在C语言中,const不能定义真正意义上的常量!

下边通过一个小例子先来初步感受下C与C++中,const的区别

#include<stdio.h>

int main()
{
    const int i = 0;
    int *p = (int *)&i;

    *p = 5;

    printf("i = %d\n", i);

    return 0;
}

首先采用gcc编译器来编译,输出结果如下:

可以看到,我们用const修饰的变量i,值已经被改了,这说明C语言中的const并不能修饰为常量。
我们现在用g++来编译运行,输出结果为:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值