const用法荟萃(一)

         
const经常用来修饰一个值不能改变的量,安全,并且能消除存储操作
const的几种用法:
(1)	说明值常量
(2)	说明指针
(3)	说明函数参数及其返回值
(4)	说明类的常量和成员函数


一、const 说明值常量
值常量的说明一般放在头文件或者文件的开始部分,也可以放在类中进行说明
(1)	说明符号常量,表明符号代表的是一个常量,语法:
<类型>const<常量名>=<表达式>;const <类型> <常量名>=<表达式>……
例如:double const PI=3.14; const double PI=3.14;
(2)	说明数组常量,语法格式:
<类型>const<数组名>[大小]={初值表};
const类型> <数组名>[大小]={初值表};
(3)	说明对象常量,语法格式:
<类名>const<对象名>;
const <类名> <对象名>;
(4)	说明引用常量
(5)	const与C语言中的#define的差别
无参宏不是符号常量,没有数据类型,没有值,在内存中不分配地址。它在预处理时做宏替换,不可能做类型检查。
const定义的常量是符号常量,有数据类型,也有值,且其值不可改变,在内存中有地址,编译时做类型检查。

     由上面几小条可以看出,定义时,const和数据类型关键字的位置可以互换。

二、Const和指针

Const和指针的三种经典组合(容易混淆,最后我总结一下我的记忆方式,很有助于我自己区分这三种鬼东西,见绿色标注

(1)	指向常量的指针——const int *p; 
(首先我们都知道,这里int表示我们指针所指的对象是int型的,然后在其前面紧接const关键字,
         就表示指针所指向的int 型值不可改变,也就有了“指针指向一个不可变量”的说法了,但指针可以指向新的int型        								数据,这并没擅改之前的那个数据值,所以这种指针可以改变它的指向)
(2)	常指针——char *const pc=’a’;
(这里const放在指针变量名之前,表示指针指向的内存单元地址固定,所以肯定不能指向新的变量了,但是char之前没有const,所以我们可以擅改
该指针所指向的内存单元里的变量内容)
(3)	指向常量的常指针——const char *const pc=’a’
(根据以上两种解释,这个就不难说了)
      综上所述,我们要注意const位置,如果紧接数据类型名之前(如int ,char,float 等),则表示指针所指向的变量内容不可更改,
                                如果紧接在指针变量名之前,则表示指针所指向的内存单元地址固定,不可更改指针的指向。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值