我对post 和pre 运算符感到困惑,例如以下代码
int x = 10;
x = x++;
sysout(x);
会打印10吗?
它打印10,但我希望它应该打印11
但是当我这样做
x = ++x; instead of x = x++;
它会按照我的预期输出11,所以为什么x = x ++; 不会改变x的值?
否,正确的打印输出为10。理解结果背后原因的关键是预分配++x
和后x++
分配复合分配之间的差异。当使用预增量时,表达式的值在执行增量后获取。但是,当您使用后递增时,表达式的值
在 递增 之前 被获取,并 在 递增结果写回到变量之后被存储以供以后使用。
这是导致您看到的事件的顺序:
x
被安排了 10
++
处于后递增位置,因此x
(10
)的当前值被存储以供以后使用11
存储到x
10
会存储在中x
,并直接写入其中存储的临时值11
。赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。 其语法格式如下所示: 在 Java 语言中,“变量名称”和“表达式”内容的类型必须匹配,如果类型不匹配则需要自动转化为对应的类型。 赋值运算符的优先级低于算术运算符,结合方向是自右向左;不是数学中的等号,它表示一个动作,即将其右侧的值送到左侧的变量中(左侧只允许是变量,
我正在讨论前缀增量运算符,我们似乎遇到了分歧。 运行此代码时: 第二行是否等于: x=(x=x 1)OR x=(x 1) 很难区分差异,因为结果是相同的(两者都导致的值为1) 我认为,当赋值的左侧是变量本身时,值不会保存到原始变量。 我的对手不同意,认为只要使用操作符,值就会保存到原始变量中。 我们谁是对的?
问题内容: 我有以下代码: 我的预期输出在注释中。实际输出如下: 我对函数调用和增量运算符感到困惑。有人可以解释一下实际结果吗? 问题答案: 首先你需要知道的区别和; 如果是: 首先,将使用当前值,然后将其递增。这意味着您将获得操作的当前值,并且如果您下次使用x将获得递增的值; 如果是: 首先,当前值将增加,然后将使用它(增加的值),这意味着您将在此操作中获得增加的值,而在此操作之后将获得其他值。
主要内容:基本赋值运算符,扩展后的赋值运算符赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。 Python 中最基本的赋值运算符是等号 ;结合其它运算符, 还能扩展出更强大的赋值运算符。 基本赋值运算符 是 Python 中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量,请看下面的例子: 连续赋值 Python
C++提供了几个赋值运算符可以缩写赋值表达式。例如下列语句: c = c + 3 可以用加法赋值运算符(addition assignment operator)“+=”缩写如下: c += 3 +=运算符将运算符右边表达式的值与运算符左边表达式的值相加,并将结果存放在运算符左边表达式的值中。下列形式的语句: variable = variable operator expression; 其中
问题内容: 当我运行以下示例时,我得到输出0,2,1 我不明白为什么输出是0,2,1而不是0,2,2 问题答案: 意思是现在。调用打印,但返回0,所以和 在此之前,现在想象被调用并替换为0 所以 现在它将是 用简单的话(从这里 @ Piotr) “ i = i ++”大致翻译为 另一个这样的例子: 同样的基本原理