标签: increment

为什么这些构造使用前后增量未定义的行为?

#include <stdio.h>

int main(void)
{
   int i = 0;
   i = i++ + ++i;
   printf("%d\n", i); // 3

   i = 1;
   i = (i++);
   printf("%d\n", i); // 2 Should be 1, no ?

   volatile int u = 0;
   u = u++ + ++u;
   printf("%d\n", u); // 1

   u = 1;
   u = (u++);
   printf("%d\n", u); // 2 Should also be one, no ?

   register int v = 0;
   v = v++ + ++v;
   printf("%d\n", v); // 3 (Should be the …
Run Code Online (Sandbox Code Playgroud)

c increment operator-precedence undefined-behavior sequence-points

793
推荐指数
13
解决办法
7万
查看次数

Python中递增和递减运算符的行为

我注意到一个预增量/减量运算符可以应用于变量(如++count).它编译,但它实际上并没有改变变量的值!

Python中预增量/减量运算符(++/ - )的行为是什么?

为什么Python偏离了C/C++中这些运算符的行为?

python increment operators decrement

756
推荐指数
8
解决办法
93万
查看次数

为什么会进入无限循环?

我有以下代码:

public class Tests {
    public static void main(String[] args) throws Exception {
        int x = 0;
        while(x<3) {
            x = x++;
            System.out.println(x);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我们知道他应该只是写x++或者x=x+1,但是x = x++它首先要归于x自身,然后再增加它.为什么x继续0作为价值?

--update

这是字节码:

public class Tests extends java.lang.Object{
public Tests();
  Code:
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   return

public static void main(java.lang.String[])   throws java.lang.Exception;
  Code:
   0:   iconst_0
   1:   istore_1
   2:   iload_1
   3:   iconst_3
   4:   if_icmpge   22
   7:   iload_1 …
Run Code Online (Sandbox Code Playgroud)

java loops increment operators variable-assignment

490
推荐指数
12
解决办法
2万
查看次数

将数据库字段增加1

使用MySQL,如果我有一个字段,比如登录,我将如何在sql命令中将该字段更新为1?

我正在尝试创建一个INSERT查询,它创建firstName,lastName和logins.但是,如果firstName和lastName的组合已存在,则将登录增加1.

所以表可能看起来像..

firstName----|----lastName----|----logins

John               Jones             1
Steve              Smith             3
Run Code Online (Sandbox Code Playgroud)

我正在执行一个命令,当运行时,将插入一个新人(即Tom Rogers)或增加登录,如果John Jones是使用的名称..

mysql insert increment

150
推荐指数
3
解决办法
18万
查看次数

Ruby:如何迭代一个范围,但是以增量为单位?

所以我在这样的范围内迭代:

(1..100).each do |n|
    # n = 1
    # n = 2
    # n = 3
    # n = 4
    # n = 5
end
Run Code Online (Sandbox Code Playgroud)

但我想做的是迭代10.

因此,不是增加n1,而是下一个n实际上是10,然后是20,30等.

ruby iterator increment

147
推荐指数
4
解决办法
12万
查看次数

137
推荐指数
7
解决办法
9万
查看次数

"++"和" - "运算符已弃用Xcode 7.3

我正在看Xcode 7.3笔记,我注意到了这个问题.

++和 - 运算符已被弃用

有人可以解释为什么它被弃用了吗?我是对的,在Xcode的新版本中,你现在要使用而不是++这个x += 1;

例:

for var index = 0; index < 3; index += 1 {
    print("index is \(index)")
}
Run Code Online (Sandbox Code Playgroud)

警告的屏幕截图

increment decrement swift swift2 swift3

136
推荐指数
7
解决办法
7万
查看次数

++ someVariable Vs. Javascript中的someVariable ++

在Javascript中,您可以++在变量名称之前或之后使用运算符.这些增量变量的方法之间的区别是什么?

javascript increment unary-operator

122
推荐指数
5
解决办法
5万
查看次数

指针表达式:*ptr ++,*++ ptr和++*ptr

最近我遇到了这个我自己无法理解的问题.

这三个表达式真正意味着什么?

*ptr++
*++ptr
++*ptr
Run Code Online (Sandbox Code Playgroud)

我试过里奇.但不幸的是,他无法按照他讲述的这三项行动.

我知道它们都是为了递增指针/指向的值而执行的.我还可以猜测可能有很多关于优先级和评估顺序的事情.就像一个指针首先递增指针然后取出指针的内容,一个简单地取出内容然后递增指针等等.正如你所看到的,我对他们的实际操作我没有清楚的理解,我想尽快明确.但是当我有机会将它们应用到程序中时,我真的迷失了.例如:

int main()
{
    const char *p = "Hello";
    while(*p++)
         printf("%c",*p);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

给我这个输出:

ello
Run Code Online (Sandbox Code Playgroud)

但我的期望是它会印刷Hello.最后一个请求 - 请给出一些示例,说明每个表达式在给定的代码段中的工作原理.因为大多数时候只有一段理论飞过我的脑海.

c c++ pointers increment

117
推荐指数
4
解决办法
6万
查看次数

为什么c = ++(a + b)会出现编译错误?

在研究之后,我读到增量运算符要求操作数具有可修改的数据对象:https://en.wikipedia.org/wiki/Increment_and_decrement_operators.

由此我猜它会给出编译错误,因为它(a+b)是一个临时整数,所以不可修改.

这种理解是否正确?这是我第一次尝试研究问题所以如果有什么我应该寻找的请告知.

c increment

111
推荐指数
5
解决办法
9146
查看次数