高质量程序设计学习知识点(一)

1.1  布尔变量与零值比较

     假设布尔变量名字为flag,它与灵值比较的标注if语句如下:

if (flag ) //表示flag为真
if  (!flag) //表示 flag 为假 
不要将布尔变量flag直接与TRUE 或者1 、-1、0 等进行比较。

1.2 浮点变量与零值比较

        计算机表示浮点数(float 或double 类型)都有一个精度限制,对于超出了精度限制的浮点数,计算机会把它们的精度之外的小数部分,例如

本来不相等的两个浮点数在计算机中可能就变成相等的了。例如

float a = 10.2222222225,b=10.222222229;
if ( a = b) 
   
cout<<"a = b" <<endl; //结果为真
       在数学上a和b是不相等的,但是在32位计算机中它们就是相等的。正确的比较方式:

const double EPSILON = 1e-6;

if( abs(x-y) < = EPSILON) //x等于y
       从数学意义上讲,两个不同的数字之间存在无数个实数。计算机只能区分至少1 bit 位不同的数字。浮点数表示只是一种近似的结果。

1.3 指针变量与零值比较 

      指针变量的零值是“空值”(记为NULL) , 即不指向任何队形,尽管NULL的值与0 相同。但是意义不同。

   

//假设p是空值的指针,p与零值比较标准写法
if ( p = NULL) 

1.4 for 语句的循环控制 

        不要使用浮点数做计数器来控制循环,因为它可能是不精确地。

不要在循环体内修改循环变量,除了循环控制变量的递增或者递减。防止循环失去控制。
      
       如果计数器从0开始计数,建议for语句循环变量的控制采用“前闭后开区间” 写法,防止出现“差1”错误。
for( int i=0;i<=N-1;i++)//N个数
{
............

}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值