const用法荟萃(一)
2012-02-20 09:18
183 查看
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 等),则表示指针所指向的变量内容不可更改, 如果紧接在指针变量名之前,则表示指针所指向的内存单元地址固定,不可更改指针的指向。
相关文章推荐
- const用法荟萃(二)
- 符号“&”和const在函数里不同位置的用法
- C/C++里面const的用法
- Const关键字用法
- const用法
- 面试:C++中const用法(转)
- const、volatile、mutable的用法
- const用法归纳总结 C++
- C++中const关键字用法
- C++const用法总结
- const用法详解(转)
- const几点用法
- Const、volatile、mutable的用法
- 指针常量与常量指针(const用法总结)
- C++——const用法
- const用法
- Const用法总结(快速区分指针常量与常量指针)
- const 修饰符的几种用法
- c/c++中const用法总结
- const用法