零. 优先级 在C++ Primer一书中,对于运算符的优先级是这样描述的: Precedence specifies how the operands are grouped. It says nothing about the order in which the operands are evaluated. 意识是说优先级规定操作数的结合方式,但并未说明操作数的计算顺序.举个例子: 6+3*4+2 如果直接按照从左到右的计算次序得到的结果是:38,但
学了这么久的C语言,竟然第一次碰到这么诡异的实参求值顺序问题,大跌眼镜.果然阅读面太少了! #include<iostream> void foo(int a, int b, int c) { std::cout<<a<<","<<b<<","<<c<<std::endl; //3,2,1 } int main() { ; foo(i++,i++,i++); } 亦即C/C++求值顺
(一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do not correspond to a valid triangle". 错误信息(1): 错误原因: area = sqrt( s * ( s - a ) * ( s - b ) * ( s - c )语句后面缺少一个")" 改正方法: 把 area = sqrt( s * (