C语言之const常量(摘自C和指针)

        C语言中我们可以使用const和define关键字声明常量,所谓常量就是指值不能修改的量。如下面的例子所示:

int const a;
const int a;

        这两条语句都把a声明为一个常量(整数),它的值不能被修改。

        由于常量的值无法被修改,所以不能用任何其他东赋值给它,如此一来,怎样使它在一开始就拥有一个值呢?有两种方法:

法1:在声明时对其进行初始化,如下所示:

int const a = 15;

法2:在函数中声明为const的形参在函数被调用时会得到实参的值。

        当涉及指针变量时,情况变得更加有趣,因为有两样东西都有可能成为常量——指针变量和它所指向的实体(即指针所指向的内存地址所存储的值)。下面几个声明的例子:

int *pi;

        pi是一个普通的指向整形的指针。而变量

int const *pci;

        则是一个指向整型常量的指针。你可以修改指针的值,但你不能修改它所指向的值。相比之下:

int *const cpi;

        则声明pci为一个指向整型的常量指针。此时指针是常量,它的值无法修改,但你可以修改它所指向的整型的值。

int const * const cpci;

        最后,在cpci这个例子里,无论是指针本身还是它所指向的值都是常量,不允许修改。


提示:

        当你声明变量时,如果变量的值不会被修改,你应该在声明中使用const关键字。这种做法不仅使你的意图在其他阅读你的程序的人面前得到清晰的展现,而且这个值被意外修改时,编译器能够发现这个问题。


备注:本文摘自《C和指针》中文版p38 - p39。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值