操作符%称为“求余”或“求模”,用于计算左操作数除以右操作数的余数。该操作符的操作数必须为整型。
int ival=42;
double davl=3.14;
ival%12;
ival%davl; //error
不应该串接使用关系操作符,如:
if (i < j < k)
{
//...
}
相等(==)和赋值(=)区别
赋值操作具有右结合性。
自增和自减操作符
自增和自减分为两种形式:前置和后置。前自增使其操作数加1,操作结果是修改后的值。同理,前自减是使操作数减1。这两种操作符的后置形式同样对其操作数加1(或减1),但操作后产生操作数原来的、未修改的值作为表达式的结果。
int i=0,j;
j=++i; //j=1,i=1
j=i++; //j=1,i=2
前置操作需要的工作量少,只有在必要时才使用后置操作。
C++为包含点操作符和解引用操作符的表达式提供了一个同义词:箭头操作符(->)
Sales_item *sp = &item;
(*sp).same_isbn(item_other);
sp -> same_isbn(item_other); //与上一条语句相同
条件表达式
条件表达式的优先级相当低,通常都需要用圆括号将表达式扩起来
cout << (i < j ? i : j) << endl;
cout << (i < j) ? i : j << endl; //ERROR
cout << i < j ? i : j << endl; //ERROR
sizeof操作符
sizeof操作符返回一个对象或类型名的长度,返回值类型为size_t,长度单位为字节。
sizeof表达式的结果是编译时常量。
逗号操作符
逗号表达式是一组由逗号分割的表达式,这些表达式从左到右进行计算。然而,逗号表达式的结果是其最右边表达式的值。