繁体   English   中英

C中递增和递减运算符

[英]Increment & decrement operators in C

在以下程序中

     main()
 {
     int a = 21;
     int b = 10;
     int c ;
     c = a++; 
     printf("Value of c is %d\n", c );
     c = a--; 
     printf("Value of c is %d\n", c );
 }

输出是

Value of c is 21
Value of c is 22

如果我们只写一个++它会显示22,如果我们写一个 - 它显示20,而当它被分配给c时,它显示为21和22,为什么会这样?

在++的情况下,++是后缀运算符。 因此,a的第一个值被赋值给c,然后a递增.c的hence值为21。

现在a的当前值是22.在c = a--的情况下,a的值(即22被分配)到c然后a减少。 因此c的值是22。

c = a++;

a++装置返回的值a和递增的值a这样

c = 21;/* Because a = 21 before incrementing */

a--表示同样返回值并递减

c = 22;

当我们在线c = a--

a22因为之前的a++操作,此行a将递减, a将为21。

是因为你的值赋给ca之前返回到它++--

C中有postfixprefix运算符。当你使用postfix运算符时,首先进行赋值然后运算 如果你想在一行中进行赋值和操作,那么你必须使用prefix运算符,其中操作先发生,然后分配 如果您修改下面的代码,那么您将得到预期的输出

     c = ++a; 
     printf("Value of c is %d\n", c );
     c = --a; 
     printf("Value of c is %d\n", c );

此链接将为您提供更多理解

c=a++;
相当于
c=a;a+=1;
c=a--;
相当于
c=a; a-=1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM