C语言中的自增、自减是怎么回事?请详细些。

发布时间:2024-05-19 12:07 发布:上海旅游网

问题描述:

问题解答:

自增有两种i++和++i:
i++的意思是先把i值调出来参与运算,然后把i加1存储;
++i的意思是先把i的值加1然后参与运算;
自减也有两种i--和--i:
i--的意思是先把i值调出来参与运算,然后把i减1存储:
--i的意思是先把i的值减1然后参与运算;

首先,不同的编译器有从左到右和从右到左的的区别,所以i++和++i不能一概而论。如;i=1;m=(++i)+(++i)+(++i);printf("%d",m); 这个式子在TC与VC中输出结果就不一样了.VC与TC结果分别为:10,12

这里针对(++,--)有一种比较直观解释(举例):
int a,b
a=b=0;
b=a++; //b=0; 可以理解为b=a, a+=1;
cout<<a<<endl; //a=1;
cout<<b<<endl; //b=0;

a=b=0;
b=++a; //b=0; 可以理解为a+=1,b=a;
cout<<a<<endl; //a=1;
cout<<b<<endl; //b=1;
同理,
i--,--i也一样道理.

i++:先取出寄存器的值返回,然后把寄存器的值+1
i--:类似

++i:先把寄存器的值+1,然后取出寄存器的值返回
--i:类似

这是最经典的回答。

一个初学者的理解:
++I,+号在I前,就是使用I前将I+1;
I++,+号在I后,就是使用I后将I+1.
不知道对不对,呵呵

热点新闻