第 3 章 表达式
问题列表:
3.1 为什么这样的代码: a[i] = i++; 不能工作?
3.2 使用我的编译器,下面的代码int i=7; printf("%d\n", i++ * i++); 返回49?不管按什么顺序计算, 难道不该打印出56吗?
3.3 对于代码int i = 3; i = i++; 不同编译器给出不同的结果, 有的为3, 有的为4, 哪个是正确的?
3.4 这是个巧妙的表达式: a.=b.=a.=b 它不需要临时变量就可以交换a 和b 的值。
3.5 我可否用括号来强制执行我所需要的计算顺序?
3.6 可是&& 和|| 运算符呢?
3.7 我怎样才能理解复杂表达式?“序列点” 是什么?
3.8 那么, 对于a[i] = i++; 我们不知道a[] 的哪一个分量会被改写,但i的确会增加1, 对吗?
3.9 ++i 和i++ 有什么区别?
3.10 如果我不使用表达式的值, 我应该用++i 或i++ 来自增一个变量吗?
3.11 为什么如下的代码int a = 100, b = 100; long int c = a * b; 不能工作?
3.12 我需要根据条件把一个复杂的表达式赋值给两个变量中的一个。