C++中的表达式

基础概念:

  组合运算符和运算对象(优先级与结合律)

  运算对象转换(类型转换)

  运算符重载(<<  >>之类)

  左值和右值

 

算术运算符

    

  一元负号对布尔值的运算不起作用

  提示:注意溢出和其它算术运算异常

逻辑和关系运算符

  逻辑与和逻辑或运算符

  逻辑非运算符

  关系运算符

赋值运算符

  赋值运算满足右结合律

  赋值运算优先级较低  

  注意:切勿混淆相等运算符和相等运算符

  复合赋值运算符

 

递增和递减运算符

  建议:除非必须,否则不建议使用递增递减运算符后置版本。

  *p++ = *(p++) //简洁可以成为一种美德

成员访问运算符(.和->)

    条件运算符  A>B ? A : B;类似这种

 

位运算符:

  

  建议仅将位运算符用于处理无符号类型。

  位移运算符

  位求反运算符

  位与 位或 位异或运算符

  移位运算符(又叫IO运算符) 满足左结合律

   cout<<"hi"<<"there"<<endl;

sizeof运算符

  

  

   

  逗号运算符

类型转换

  隐式转换  例如:int ival = 3.14 + 3;

算术转换

  整型提升(其实就是超出范围了把自动类型扩大)

其它隐式转化

  数组转换成指针,,

显式转换

  命名的强制类型转换

  static_cast  const_cast   reinterpret_cast  

附:运算符优先表

  

  

 

posted @ 2019-03-21 17:19  Stephen_A  阅读(4577)  评论(0编辑  收藏  举报