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

如果y = 1和y = y ++,为什么在我打印y时值是1?[重复]

郭胤
2023-03-14
问题内容

执行此操作后(幕后)会发生什么?

int x = 7;
x = x++;

也就是说,当变量在一个语句中后增加并分配给它自己时?我编译并执行了这个。 即使整个陈述之后x仍然是7 。在我的书中,它说是递增的! __x


问题答案:

x确实增加了。但是,您正在将xback 的旧值分配给自身。

x = x++;
  1. x++递增x并返回其旧值。
  2. x = 将旧值分配回自己。

因此,最后x将其分配回其初始值。



 类似资料:
  • 将返回来自x(包括)和y(不包括)的流。将返回来自x(含)和y(含)的流。 我期望调用或调用。但是当查看的源代码时,它是这样的: 也有一个非常相似的实现,而不是。唯一的区别是的第三个参数是而不是表示范围已关闭。 然后使用此布尔值初始化类中的字段,并针对它提到以下注释: 如果该范围已关闭且最后一个元素未被遍历,则为1,如果该范围已打开,或该范围已关闭且所有元素都已被遍历,则为0 为什么需要这样的实现

  • 这个问题与Java表达式中子表达式的求值顺序不同,因为在这里肯定不是“子表达式”。需要加载它进行比较,而不是“求值”。这个问题是特定于Java的,表达式来自一个真实的项目,而不是通常为棘手的面试问题而设计的牵强附会的不切实际的构造。它应该是比较和替换习语的一行替换 它比x86 CMPXCHG指令还要简单,因此在Java中应该使用更短的表达式。

  • 上面的片段结果是x=1,y=10,z=3,请解释这段代码。提前致谢

  • 问题内容: Python文档明确指出了调用。但是似乎在许多情况下,情况恰恰相反。它何时何地发生的原因在哪里记录,如何确定我的对象或方法将被调用。 编辑:只是为了澄清,我知道在优选中调用,但是我不清楚为什么优先于调用,而后者是文档状态将发生的原因。 编辑:从马克·迪金森的答案和评论中,它看起来像是: 丰富的比较替代 是它自己的,以它的(以及类似的,等等) 如果左对象是内置类或新样式类,而右对象是其子

  • 问题内容: 考虑以下示例: 我不确定Java语言规范中是否有一项规定要加载变量的先前值以便与右侧()进行比较,该变量应按照方括号内的顺序进行计算。 为什么第一个表达式求值,而第二个表达式求值?我本来希望先被评估,然后再与自身()比较并返回。 这个问题与Java表达式中子表达式的求值顺序不同,因为这里绝对不是“子表达式”。需要 加载 它以进行比较,而不是对其进行“评估”。这个问题是特定于Java的,

  • y

    描述 (Description) 此功能与tr ///运算符相同; 将SEARCHLIST中的所有字符转换为REPLACEMENTLIST中的相应字符。 它通过字符转换进行 语法 (Syntax) 以下是此函数的简单语法 - y/SEARCHLIST/REPLACEMENTLIST/ 返回值 (Return Value) 此函数返回修改的字符数。 例子 (Example) 以下是显示其基本用法的