运算符优先级
每个间隔里的运算符具有相同优先级,位于上面的间隔里的运算符优先级更高。
一元运算符和赋值运算符是右结合的,其它运算符都是左结合的。例如a = b = c的意思是a = (b = c),a + b + c是(a + b) + c
下溢,上溢和除零都不会抛出标准异常
在一个表达式里,子表达式的求值顺序是没有定义的。你不能假定表达式从左到右求值。例如:
int x = f(2) + g(3); //没定义f()或g()哪个先调用
int i = 1;
v[i] = i++; //无定义结果
void cpy(char* p, char* q)
{
while(*p++ = *q++);
}
delete运算符只能用到由new返回的指针或者0,对0应用不会造成任何影响
指针转换不能直接采用T(e)的记法形式表示。例如,char*(2)是一个语法错误。
int j = int(); //默认的int值
complex z = complex(); //默认的complex值