练习4.31
本节的程序使用了前置版本的递增运算符和递减运算符,解释为什么要用前置版本而不用后置版本。要想使用后置版本的递增递减运算符需要做哪些改动?使用后置版本重写本节的程序。
在4.5节(132页)已经说过了,除非必须,否则不用递增递减运算符的后置版本。在这里要使用后者版本的递增递减运算符不需要任何改动。
练习4.32
解释下面这个循环的含义。
constexpr int size = 5;
int ia[size] = { 1, 2, 3, 4, 5 };
for (int *ptr = ia, ix = 0;
ix != size && ptr != ia+size;
++ix, ++ptr) { /* ... */ }
这个循环在遍历数组 ia,指针 ptr 和 整型 ix 都是起到一个循环计数的功能。
练习4.33
根据4.12节中的表说明下面这条表达式的含义。
someValue ? ++x, ++y : --x, --y
逗号表达式的优先级是最低的。因此这条表达式也等于:
(someValue