龙空技术网

5年程序员精心总结——C语言表达式,你能答对3个吗

IT百科大学堂 1443

前言:

今天朋友们对“表达式不符合c语言”大致比较关注,各位老铁们都想要剖析一些“表达式不符合c语言”的相关文章。那么小编同时在网络上网罗了一些对于“表达式不符合c语言””的相关资讯,希望你们能喜欢,咱们一起来了解一下吧!

今天我们来聊点轻松的——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语言