Const常量真的不能改变了么?

Const常量真的不能改变了么?


在介绍const用法的时候,老师们都说"由const修饰的变量的数值是不能修改的", 不过世间的事总不是那么绝对的!下面就介绍几种修改const变量的方法!
我们声明一个const类型的变量,可以用如下代码:
const int a = 2;
直接对a进行赋值是不行的,如果我们一定要想改变a的值怎么办?在C,C++中指针真是个好东西,它可以为我们巧妙的解决很多问题。我们使用指针用如下代码即可达到修改a值的目的!
const int a = 10;
int *p  = (int*)&a;
*p = 20;
cout << *p << endl;
如果是常量指针呢?
    int array[10]={0};
    const int *pointer=array;
    int *pointer1=(int*)pointer;
    pointer1[0]=1;
    cout << array[0] << endl;
如果是指针常量呢:它的声明形式为:int* const pointer; 常指针在编程的过程中它的指向不能改变.
因此,常指针在声明的时侯一定要给它赋初值.否则,就不能直接给它赋值.
但是,如果一定要给它赋上一定的值,是可以的.如下例子:
#include<stdio.h>
int main()
{
    int a=2;
    int* const p;
    int **p1=(int**)&p;
    *p1=&a;
    printf("%d",*p);
    return 0;
}

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值