[英]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--
a
是22
因为之前的a++
操作,此行a
将递减, a
将为21。
是因为你的值赋给c
值a
之前返回到它++
或--
C中有postfix
和prefix
运算符。当你使用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.