4. 表达式
- 4.1 为什么这样的代码:
a[i] = i++; 不能工作?
- 4.2 使用我的编译器,下面的代码
int i=7; printf("%d\n",
i++ * i++); 返回 49?不管按什么顺序计算, 难道不该打印出56吗?
- 4.3 对于代码
int i = 3; i = i++; 不同编译器给出不同的结果, 有的为 3, 有的为 4,
哪个是正确的?
- 4.4 这是个巧妙的表达式:
a ^= b ^= a ^= b
它不需要临时变量就可以交换 a 和 b 的值。
- 4.5 我可否用括号来强制执行我所需要的计算顺序?
- 4.6 可是 && 和 || 运算符呢?
我看到过类似
while((c = getchar()) != EOF &&
c != '\n')
的代码 ……
- 4.7 我怎样才能理解复杂表达式?``序列点" 是什么?
- 4.8 那么, 对于 a[i] = i++; 我们不知道 a[] 的哪
一个分量会被改写,但 i 的确会增加 1, 对吗?
- 4.9 ++i 和 i++ 有什么区别?
- 4.10 如果我不使用表达式的值, 我应该用 ++i 或 i++
来自增一个变量吗?
- 4.11 为什么如下的代码
int a = 100, b = 100;
long int c = a * b; 不能工作?
- 4.12 我需要根据条件把一个复杂的表达式赋值给两个变量中的
一个。可以用下边这样的代码吗?
((condition) ? a : b) = complicated_expression;
翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)