欢迎您! | 积分 | 主页 |
注册 | 登陆 |
官方QQ群: 8807551

C++常量定义

发布日期:2010-01-31 20:04:04.0 发布讲师:don 浏览量:373
课程类别:IT电脑开发
学习标签: c++ 常量 定义 开发
免费在线正则表达式验证工具! 免费在线HTML/JS/CSS调试工具!


点击放大图片-C++常量定义

常量是定以后,在程序运行中不能被改变的标识符。C++中定义常量可以用#define 、const 这两种方法。例如:

#define PRICE 10	//定义单价常量10
const int PRICE = 10; //定义单价常量10

其实用常量是有它的理由的,下面我们来看下面两段程序对比
代码
#include <iostream> 
using namespace std;

#define PI 3.14159
//const double PI = 3.14159;


int main(int argc, char* argv[])
{
    
    
double square = 0,volume =0, radius=0;

    cout
<<"请输入半径长度"<<endl;
    cin
>>radius;

    square 
= 3.14159 * radius * radius;
    
    cout
<<"半径长度为:"<<radius<<"的圆面积是:"<<square<<endl;

    volume 
= 4 * 3.14159 * radius * radius * radius /3;
    cout
<<"半径长度为:"<<radius<<"的球体积是:"<<volume<<endl;
}

 

代码
#include <iostream> 
using namespace std;

#define PI 3.14159
//const double PI = 3.14159;


int main(int argc, char* argv[])
{
    
    
double square = 0,volume =0, radius=0;

    cout
<<"请输入半径长度"<<endl;
    cin
>>radius;

    square 
= PI * radius * radius;
    
    cout
<<"半径长度为:"<<radius<<"的圆面积是:"<<square<<endl;

    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 常量进行调试, 但是不能对宏常量进行调试。


验证码:验证码

网店名字Don的知识网店
网店店主don
相关课程(共8个):
讲师:don 浏览数:42
2010-07-24 00:36:47.
讲师:don 浏览数:32
2010-07-23 13:01:08.
讲师:don 浏览数:75
2010-07-14 03:43:38.
讲师:don 浏览数:108
2010-07-13 09:25:58.
讲师:don 浏览数:123
2010-07-08 23:35:23.
讲师:don 浏览数:109
2010-07-07 20:11:56.
讲师:don 浏览数:151
2010-07-03 15:08:29.
讲师:don 浏览数:82
2010-07-01 10:09:49.



©2008 - 沪ICP备07037037号 - 简历 - SQL管理 - 邮箱登陆 - RSS阅读