const用法荟萃(一)

来源:互联网 发布:淘宝怎样开店铺视频 编辑:程序博客网 时间:2024/05/22 14:12
         
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 等),则表示指针所指向的变量内容不可更改,                                如果紧接在指针变量名之前,则表示指针所指向的内存单元地址固定,不可更改指针的指向。
原创粉丝点击