学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > c++ >

第二节 C++语法规则(8)

设置字体:
----------------------------------

( (5 == 5) && (3 > 6) ) 返回false ( true && false ).
( (5 == 5) || (3 > 6)) 返回true ( true || false ).
 
条件运算符Conditional operator ( ? )
条件运算符计算一个表达式的值并根据表达式的计算结果为真true或假false而返回不同值。它的格式是:
condition ? result1 : result2 (条件?返回值1:返回值2)
如果条件condition 为真true,整个表达式将返回esult1,否则将返回result2。
7==5 ? 4 : 3 返回3,因为7不等于5.
7==5+2 ? 4 : 3 返回4,因为7等于5+2.
5>3 ? a : b 返回a,因为5大于3.
a>b ? a : b 返回较大值,a 或b.
 
// 条件运算符例子

#include <iostream>
using namespace std;

int main ()
{
  int a,b,c;

  a=2;
  b=7;
  c = (a>b) ? a : b;

  cout << c;

  return 0;
}
7                 
上面的例子中a的值为2,b的值为7,所以表达式(a>b)运算值为假(false),所以整个表达式(a>b)?a:b要取分号后面的值,也就是b的值7。因此最后输出 c 的值为7。
 
逗号运算符 ( , )
逗号运算符 (,) 用来分开多个表达式,并只取最右边的表达式的值返回。

例如有以下代码:
a = (b=3, b+2);

这行代码首先将3赋值给变量b,然后将 b+2 赋值给变量 a。所以最后变量a 的值为5,而变量b的值为3。
位运算符Bitwise Operators ( &, |, ^, ~, <<, >> )
位运算符以比特位改写变量存储的数值,也就是改写变量值的二进制表示:
op asm Description
& AND 逻辑与 Logic AND
| OR 逻辑或Logic OR
^ XOR 逻辑异或Logical exclusive OR
~ NOT 对1取补(位反转)Complement to one (bit inversion)
<< SHL 左移Shift Left
>> SHR 右移Shift Right
 
变量类型转换运算符Explicit type casting operators
变量类型转换运算符可以将一种类型的数据转换为另一种类型的数据。在写C++中有几种方法可以实现这种操作,最常用的一种,也是与C兼容的一种,是在原转换的表达式前面加用括号()括起的新数据类型:
int i;
float f = 3.14;
i = (int) f;
以上代码将浮点型数字3.14转换成一个整数值(3)。这里类型转换操作符为(int)。在C++中实现这一操作的另一种方法是使用构造函数constructor 的形式:在要转换的表达式前加变量类型并将表达式括在括号中:
i = int ( f );
以上两种类型转换的方法在C++中都是合法的。另外ANSI-C++针对面向对象编程(object oriented programming)增加了新的类型转换操作符 。
 
sizeof()
这个运算符接受一个输入参数,该参数可以是一个变量类型或一个变量自己,返回该变量类型(variable type) 或对象(object)所占的字节数:
a = sizeof (char);
这将会返回1给a,因为char是一个常为1个字节的变量类型。
sizeof返回的值是一个常数,因此它总是在程序执行前就被固定了。
 
其它运算符
在本教程后面的章节里我们将看到更多的运算符,比如指向指针的运算或面向对象编程特有的运算,等等,我们会在它们各自的章节里进行详细讨论。
 
运算符的优先度 Precedence of operators
----------------------------------
课程列表
重点难点
赞助链接