Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 增量运算符未显示预期结果_C_Increment - Fatal编程技术网

C 增量运算符未显示预期结果

C 增量运算符未显示预期结果,c,increment,C,Increment,我没有得到我期望的结果 void main(){ int x = 5; int y = x++; printf("%d, %d", x, y); } 我得到了6,5作为输出,但我希望6,6您使用的是增量后操作符 y = ++x: 该行: int y = x++; 相当于: int y = x; x += 1; int y; x += 1; y = x; x的增量发生在将x的值复制到y之后 pre increment运算符可能就是您要查找的运算符,其用法如下: i

我没有得到我期望的结果

void main(){
    int x = 5;
    int y = x++;
    printf("%d, %d", x, y);
}

我得到了
6,5
作为输出,但我希望
6,6

您使用的是增量后操作符

y = ++x:
该行:

int y = x++;
相当于:

int y = x;
x += 1;
int y;
x += 1;
y = x;
x
的增量发生在将
x
的值复制到
y
之后

pre increment运算符可能就是您要查找的运算符,其用法如下:

int y = ++x;
这相当于:

int y = x;
x += 1;
int y;
x += 1;
y = x;

这似乎是您所期望的。

运算符的行为因其所在位置而异

y=x++将获得x的值,然后将其递增。(增额后)

y=++x将首先递增x,然后将该新值赋予y。(增薪前)


您可能正在查找预增量。

您正在使用后增量运算符。它的计算结果为递增之前的变量的值,这就是为什么
y
包含5

对于您的情况,您需要preincrement操作符

y = ++x:

您已使用增量后运算符(即
x++
)并将其分配给
y
,因此
y
将为6,
x
将为5

对于预期的输出,请使用pre-increment运算符,如下所示:

int main() {
    int x = 5;
    int y = ++x;
    printf("%d, %d", x, y);
}

但是
6,5
是预期的结果…欢迎来到StackOverflow!如果下面的答案回答了您的问题,请记住将其标记为“已接受”。祝你的代码好运!