《C++ primer》学习笔记之十一:const的放置位置
来源:互联网 发布:速食汤 知乎 编辑:程序博客网 时间:2024/05/16 08:55
const double d = 9.1;
double const d2 = 9.2; //const放double后或double前效果一样
double d3 const = 9.3; //error.不能放在变量名后。const修饰函数名时可以放在函数名后。
const double *dp = &d; //dp为一个指针,指向一个const double。 赋值(*dp)=9.2;将导致错误
double const * dp2 = &d; //const放double后或double前效果一样
const double * const dp3 = &d; //dp为一个const指针,指向一个const double。
const double const * const dp4 = &d; //导致warning(重复的修饰),这句话等同于:const const double * const dp4 = &d;
const double d = 9.1;这句比double const d2 = 9.2;常见。不过后者我认为更确切,看下面:
typedef char *cstring;
char *cstr = "ab";
const cstring cstr = "cd"; //这一句相当于下面的哪一句?
const char *cstr2;
char *const cstr3; //与这句效果相同
语句const cstring cstr = "cd"; 与char *const cstr3;等效,而不是与const char *cstr2;等效。
原因:const cstring cstr = "cd"; 与cstring const cstr3;等效。
所以将const置于修饰的类型的后面比放在类型的前面好,比如:
double const d2 = 9.2; //not: const double d = 9.1;
double const *dp = &d; //not: const double *d =&d;
double const * const dp31 = &d; //not: const double * const dp3 = &d;
将double叫double变量,叫double const叫double不变量。这就不绕口了。
double const d2 = 9.2; //const放double后或double前效果一样
double d3 const = 9.3; //error.不能放在变量名后。const修饰函数名时可以放在函数名后。
const double *dp = &d; //dp为一个指针,指向一个const double。 赋值(*dp)=9.2;将导致错误
double const * dp2 = &d; //const放double后或double前效果一样
const double * const dp3 = &d; //dp为一个const指针,指向一个const double。
const double const * const dp4 = &d; //导致warning(重复的修饰),这句话等同于:const const double * const dp4 = &d;
const double d = 9.1;这句比double const d2 = 9.2;常见。不过后者我认为更确切,看下面:
typedef char *cstring;
char *cstr = "ab";
const cstring cstr = "cd"; //这一句相当于下面的哪一句?
const char *cstr2;
char *const cstr3; //与这句效果相同
语句const cstring cstr = "cd"; 与char *const cstr3;等效,而不是与const char *cstr2;等效。
原因:const cstring cstr = "cd"; 与cstring const cstr3;等效。
所以将const置于修饰的类型的后面比放在类型的前面好,比如:
double const d2 = 9.2; //not: const double d = 9.1;
double const *dp = &d; //not: const double *d =&d;
double const * const dp31 = &d; //not: const double * const dp3 = &d;
将double叫double变量,叫double const叫double不变量。这就不绕口了。
- 《C++ primer》学习笔记之十一:const的放置位置
- const 放置位置的意義
- const 引用(c++primer笔记)
- C++Primer学习笔记—(const限定符)
- c++primer学习笔记-----2.4const限定符
- 学习笔记:C++primer 2.4 const限定符
- 《C++ primer》学习笔记之二十一:有趣的变参函数
- C++ Primer 笔记之const总结
- primer学习笔记2 const
- C/C++学习笔记之const的学习
- C++Primer学习之二#define,const,constexpr
- C++ Primer Plus学习笔记之const修饰指针
- javabean 的放置位置 之 心得
- C++Primer学习笔记之二
- C++Primer学习笔记之三
- C++primer学习笔记之函数
- 《C Primer Plus》学习笔记之 函数
- Android学习笔记(十一)基于位置的服务
- uclinux初始化---------2
- 《C++ primer》学习笔记之十:当char字符常量中含多个字符时
- uclinux的内存初始化---------3
- uclinux中断和异常向量初始化--------4
- 中国嵌入式应用市场四大热点及趋势
- 《C++ primer》学习笔记之十一:const的放置位置
- 动手给自己的Blog做了个整容手术,决定在CSDN上安家了
- 《C++ primer》学习笔记之十二:const在"="表达式中
- java数据区的一些简单介绍
- 《C++ primer》学习笔记之十三:一段很好看的c++代码,由此得出的编程风格
- 感觉bolg好难用啊!
- 《C++ primer》学习笔记之十四:c-style字符串的长度算‘/0’在内
- 《C++ primer》学习笔记之十五:四个cast
- 《C++ primer》学习笔记之十六: typedef的奇怪的用法