第4章 课后习题
4.1、105 4.2、(a).*vec.begin() == *(vec.begin()); (b) *vec.begin() + 1 == *(vec.begin()+1) 4.3、我觉得可以接受(个人看法并非标准答案,仅作参考);这种缺陷只会求值顺序对表达式的最后结果有影响的时候出现,而如果求值顺序如果对最后结果有影响 那么避免这种缺陷本身就是编程人员的责任,编译器采用何种策略都是没有关系的 4.4、(((12/3)*4)+(5*15)) + ((24%4)/2) == 91; //p4_4.cpp #include <iostream> using namespace std; int main() { int a; a = 12/3*4+5*15+24%4/2; cout << "a = " << a << endl; return 0; } 4.5 a -86; b -18; c 0 d -2 4.6、 bool is_even = (inum%2 == 0) ? true:false; 4.7、表达式求值后得到的结果超出对应类型所能存储的最大值或最小值 4.8、逻辑与与逻辑或都是从左向右;与:当且仅当左面对象求值不能确定表达式的结果才对右边的表达式进行求值 相等性运算符对象的求值顺序是没有规定的 4.9 、先判断cp是一个非空指针再判断指向的值分空 4.10