当前位置: 首页 > 面试题库 >

C,C ++,Java和C#之前和之后的增量运算符行为

姬承教
2023-03-14
问题内容

免责声明: 这不是真实示例。这只是这些语言如何工作的理论问题。

C / C ++,C#和Java在后和前增量运算符之间到底有什么区别?

这就是我使用VC ++ 10,Java 1.6和C#4所获得的

int a = 2;
int b = a++ + a++;
int c = ++a + a++ + a++;

      +-----+------+------+----+
      |  C  | C++  | Java | C# |
+-----+-----+------+------+----+
| a   |  7  |  7   |   7  |  7 |
+-----+-----+------+------+----+
| b   |  4  |  4   |   5  | 5  |
+-----+-----+------+------+----+
| c   | 15  |  15  |  16  | 16 |
+-----+-----+------+------+----+

问题答案:

Java和C#从左到右评估表达式,其副作用立即可见。

在C ++中,未指定子表达式的求值顺序,并且两次修改同一对象而没有插入顺序点的行为是未定义的行为。



 类似资料:
  • 问题内容: 当我运行以下示例时,我得到输出0,2,1 我不明白为什么输出是0,2,1而不是0,2,2 问题答案: 意思是现在。调用打印,但返回0,所以和 在此之前,现在想象被调用并替换为0 所以 现在它将是 用简单的话(从这里 @ Piotr) “ i = i ++”大致翻译为 另一个这样的例子: 同样的基本原理

  • 以下代码返回此错误: 主要的cpp | 80 |错误:将“const matrix”作为“T”的“this”参数传递 有什么想法为什么以及如何修复它吗? http://ideone.com/5OigTP

  • 问题内容: 我只是在阅读一些Java书籍并制作一些小程序进行练习,我创建了一个小代码来获取有关所输入路径的信息,该代码为: 现在在输入对话框中,当我输入时,结果是,但是当我输入C:/时,它将显示C中目录和文件的完整列表。 奇怪的是,D驱动器和其他驱动器不会发生这种情况(即D:/和D:的结果是相同的),这是怎么回事? 更新 使用C#在WPF中也会发生同样的情况! 问题答案: 表示“驱动器上当前选择的

  • 本文向大家介绍C#编程自学之运算符和表达式,包括了C#编程自学之运算符和表达式的使用技巧和注意事项,需要的朋友参考一下 我们了解完C#数据类型与变量之后,还会遇到变量之间的运算,例如计算两个数的和等等运算。那么,C#中都有那些常用的运算符呢?那么,往下看吧! 一、算数运算符 1.基本算数运算符 说到算数运算符,我们首先就应该可以想到我们数学中一些常用的运算符例如:加 减 乘 除 求余! 那么在C#

  • C++ 运算符 C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *。 指针是一个包含了另一个变量地址的变量,您可以把一个包含了另一个变量地址的变量说成是"指向"另一个变量。变量可以是任意的数据类型,包括对象、结构或者指针。 取地址运算符 & & 是一元运算符,返回操作数的内存地址。例如,如果 var 是一个整型变量,则 &var 是它的地址。该运算符与其他一元运算符具有

  • 问题内容: 我们在Android下拥有一个大型Java应用程序(“ big”仅表示翻译该应用程序需要太多工作)。我们必须访问用.Net编写的引擎(该引擎也太大了……)。该引擎仅用于计算。 因此,我们寻求使用Monodroid的解决方案。我们的主要问题是在monodroid和Java之间互操作。目前,我们得到: 从Mono应用程序调用.jar库中的Java函数 但是我们不能调用并启动Java活动。可