请问C语言中++i是怎么回事?
发布网友
发布时间:2023-08-10 01:06
我来回答
共5个回答
热心网友
时间:2024-12-10 12:49
i++与++i是不同的概念,先说i++ 比如i初始值为1 i++这个整体式子的值还是1,但i=2了;
与i++不同的是 ++i这个整体式子的值为2 i的值也是2.
i++与++I都是 i=i+1
热心网友
时间:2024-12-10 12:49
是自增运算,而且是先加1后再执行。
例如:
int i,k;
for(i=0,k=0; i<5; i++)
{
k += i++;
}
第一次进入时i的初始值是0,k的初始值也是0。这时的i++并没有在本次语句中起到加一的作用,而是要在本次操作结束后再起作用,也就是在第一次循 环完全结束后。进入循环体本人看,k += i++;这时由于这里的是i++(需要先操作后加1),所以,k的值理所当然是0了,而在本句结束后i的值就进行了加1操作,在本次循环结束时又进行了一 次加1操作,所以本次循环结束后k=0,i=2;
第二次进入时i的初始值是2,k的初始值是0。同理分析,在k += i++;后k的值为2了,而i的值也由于两次i++变为了4。所以,本次循环结束后k=2,i=4;
第三次进入时i的初始值是4,k的初始值是2。同理分析,在k += i++;后k的值由于经过原来的值与i当前的值相加后变成了6,而i的值同样是在最后加了两个1。所以在本次循环结束后k=6,i=6;
第四次准备进入循环时,发现i的值已经比5大了。因此,程序终止。最后k的值为6,i的值也为6。
热心网友
时间:2024-12-10 12:50
首先单独的语句 i++; 与 ++i; 都是一样的,为i=i+1
如果语句改成以下两种:(假设i初值为2)
a=++i; 先执行i=i+1,这时i的值变成了3,再把i的值赋给a,a=3;
a=i++; 先把i的初值赋给a,a=2,然后i再执行i=i+1,这时i的值变成了3。
热心网友
时间:2024-12-10 12:51
这个问题其实就是前加加和后加加的区别,前加加就是++i顾名思意就是先加,同理后加加即i++就是后加。在通常情况下不会有多大差别反正最后结果都是i=i+1;但是如果遇到加加与赋值式结合就会有所区别,示例如下:
前加加:i=10; a=++i;展开后就是i=i+1;a=i;最后的结果是a=11,i=11;
后加加:i=10; a=i++;展开后就是a=i;i=i+1;最后的结果是a=10,i=11;
从上可以看出前加加和后加加的主要区别是当遇到赋值等式的时候,赋值过程与自加过程的发生顺序不同。
热心网友
时间:2024-12-10 12:51
如果单独出现和 i++一样 都是自增量