c++表达式和基本语句



c++表达式和基本语句。

与零值比较

4.3.1 布尔变量与零值比较

[cpp] view plaincopy

  1. //直接使用变量名判断
  2. 推荐风格
  3. if (flag) // 表示flag 为真
  4. if (!flag) // 表示flag 为假
  5. 不良风格
  6. if (flag == TRUE)
  7. if (flag == 1 )
  8. if (flag == FALSE)
  9. if (flag == 0)

4.3.2 整型变量与零值比较

[cpp] view plaincopy

  1. //用“==”或“!=”直接与0 比较
  2. 推荐方式
  3. if (value == 0)
  4. if (value != 0)
  5. 不良风格
  6. if (value) // 会让人误解 value 是布尔变量
  7. if (!value)

4.3.3 浮点变量与零值比较

[cpp] view plaincopy


  1. //使用“>=”或“<=”的形式
  2. if ((x>=-EPSINON) && (x<=EPSINON))  //其中EPSINON 是允许的误差(即精度)。

4.3.4 指针变量与零值比较

[cpp] view plaincopy

  1. //用“==”或“!=”与NULL 比较
  2. 推荐方式
  3. if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量
  4. if (p != NULL)
  5. 不良风格
  6. if (p == 0) // 容易让人误解p 是整型变量
  7. if (p != 0)
  8. if (p) // 容易让人误解p 是布尔变量
  9. if (!p)

 

提高循环语句的效率

思想:降低循环体的复杂性

在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU 跨切循环层的次数。

[cpp] view plaincopy

  1. //低效率:长循环在最外层
  2. for (row=0; row<100; row++)
  3. {
  4.     for ( col=0; col<5; col++ )
  5.     {
  6.         sum = sum + a[row][col];
  7.     }
  8. }
  9. //高效率:长循环在最内层
  10. for (col=0; col<5; col++ )
  11. {
  12.     for (row=0; row<100; row++)
  13.     {
  14.         sum = sum + a[row][col];
  15.     }
  16. }