const的用法

       这可以说是C和C++中很基础的知识了,却也是很容易出错的知识,对于定义常量,没有什么特别,但是对于定义常量指针,没犯过错误的人估计很少。
       众所周知,被const修饰过的符号的值是无法改变的,被称为常量,比如“const int a = 50;”,但还有一种写法是“int const a = 50;”,const的位置不同了,实际上,这两条语句的意义是一样的,都是将a定义为整型常量。但若将其用于指针中,const的位置不同,意义也就不同。
       如const int *pa与int* const pa,具体看示例。
int main(int argc, char *argv[])
{
        const int a;
        int b;
        const int *pa = &a;
        pa = &b;                            //正确写法,const int *pa可以修改pa的值,但是无法修改*pa的值
        *pa = 70;                            //错误,const int *pa指向const int类型,无法修改*pa的值
        b = 70;
        printf("%d", *pa);              //打印70,*pa无法修改,但是b可以修改,虽说指向同一内存地址,但是访问形式不同
        int* const pb;                   //错误,常量指针没有初始化
        int* const pb = &a;         //正确
        pb = &b;                          //错误,常量指针的值无法修改
        *pb = 20;                         //正确,虽说a是常量,但*pb不是常量,如果以后想强行修改某常量的值,可以效仿此法
        const int* const pc = &b;           //不常见的写法,不过这种写法是正确的,从上面的几条注释就可以猜出来了,const int* const pc不可以修改*pc的值,也不可以修改pc的值
        reuturn 0;
}

转载于:https://www.cnblogs.com/simbon/archive/2012/03/26/2418521.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值