C++学习笔记——常量定义
2023-09-14 08:58:19 时间
常量是定义以后,在程序运行中值不能被改变的标识符。C++中定义常量可以用#define 、const 这两种方法。例如:
其实用常量是有它的理由的,下面我们来看下面两段程序对比代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- #include iostream using namespace std; #define PI 3.14159 //const double PI = 3.14159;
volume = 4 * 3.14159 * radius * radius * radius /3; cout "半径长度为:" radius "的球体积是:" volume endl; } 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- #include iostream using namespace std; #define PI 3.14159 //const double PI = 3.14159;
volume = 4 * PI * radius * radius * radius /3; cout "半径长度为:" radius "的球体积是:" volume endl; } 显然如果我还要求球、圆柱体的面积等,用常量的好处就显而易见,用常量的有下面一些好处: 1:增强程序的可读性。用一个有意义的常量代替一串无意义的字符串,显然很多时候程序员忘了或是不理解这一串字符串代表什么意义。 2:如果很多地方用到像PI(3.14159)这样的常量,难保输入错误,尤其复杂的很长的字符串时,而用常量则能一改而全部改变、减少出错的几率。 其中#define是定义宏变量,它其实是在编译之前,由预处理指令把代码里面的宏变量用指定的字符串替换,它不做语法检查,而constant 则是定义含有变量类型的常量。一般说来推荐使用constant定义常量,它在编译时会做语法检查。Effective c++ 的条款1中:“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分。而且有时候用宏,会出现意想不到的输出结果。 #define 与 const 的比较 (1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应) 。 (2) 有些集成化的调试工具可以对 const 常量进行调试, 但是不能对宏常量进行调试。
C++常量定义的两种方式 # C++常量 作用:用于记录程序中不可更改的数据 C++常量定义的两种方式 1.#define 宏常量:#define 常量名 常量值 通常在文件上方定义,表示一个常量 2. const修饰的变量:const 数据类型 常量名 = 常量值 通常在变量定义前加关键字const,修饰该变量为常量,不可修改
潇湘隐者 网名潇湘隐者/潇湘剑客、英文名Kerry,兴趣广泛,广泛涉猎,个性随意,不善言辞。执意做一名会写代码的DBA,混迹于IT行业
相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- C++项目职工管理系统笔记-项目代码
- C++系列笔记(一)
- C++系列笔记(五)
- C++系列笔记(九)
- c++中 this指针详解[通俗易懂]
- c++多线程重点难点(三)Mutex
- c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
- 【笔记】《深入理解C++11》(上)
- LeetCode1290 二进制链表转整数C++解法(vector实现)
- c++之数据处理笔记(一)
- c++之复合类型笔记(二)
- C++提高编程笔记合集
- C++笔记
- C++11学习笔记3
- C++结构体和类的区别_c++有结构体吗
- c++的链表-链表入门(C++)
- C/C++ 结构体与指针笔记
- C/C++ 关于运算符重载笔记
- C++ 20 学习笔记1 --From BiliBili.com
- C++核心编程笔记合集
- 【C++】通过stack、queue、deque理解适配器模式
- C++面向对象程序设计(谭浩强)第三章第10~11节学习笔记
- c++基础篇之C++ 模板
- c++学习笔记详解编程语言
- C++纯虚函数和抽象类详解
- C++11 auto和decltype关键字
- C++ left和right操作符用法详解
- C++中给二维指针分配内存(实现代码)
- c++函数转c#函数示例程序分享
- C++之WSAAsyncSelect模型实例