今天我们来聊点轻松的——C语言表达式,这个简单吧,下边的几个问题你能答对几个(答对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 可是 && 和 || 运算符呢?我看到过类似 while((c = getchar()) !=EOF && c != ’\n’) 的代码 ……

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 我需要根据条件把一个复杂的表达式赋值给两个变量中的一 个。可以用下边这样的代码吗? ((condition) ? a : b) = complicated expression;

c语言算法的表达式有几种(5年程序员精心总结)(1)

c语言算法的表达式有几种(5年程序员精心总结)(2)

c语言算法的表达式有几种(5年程序员精心总结)(3)

c语言算法的表达式有几种(5年程序员精心总结)(4)

,