for循环里++i和i++的区别

2025-05-11 14:40:40
推荐回答(2个)
回答1:

#include  
#include  
#include  
#define N 10000  
int main()  
{  
    int i, j, k, n, m;  
    j = 0;  
    k = 0;  
    for (i = 0; i <10;k=i, ++i,j=1)  
    {  
        printf("---\n");  
        printf("k=%d\n", k);  
        printf("j=%d\n", j);  
        printf("i=%d\n", i);  
    }  
    printf("i====%d\n", i);  
    printf("\\\\\n");  
    for (i = 0; i < 10; k=i,i++, j = 2)  
    {  
        printf("---\n");  
        printf("k=%d\n", k);  
        printf("j=%d\n", j);  
        printf("i=%d\n", i);  
    }  
    printf("i====%d\n", i);  
    return 0;  
}

从结果我们可以看出这样几点:

1.for循环先执行前两个分号内的内容,然后执行大括号的内容,最后执行第二个分号后的内容

2.在++i和i++的形式下i都完成了i=i+1的操作,这个操作在这个地方不分先后。因为最后都是吧i+1赋给了原来的i

回答2:

i++是先取i值进行本程序语句的计算,然后再自加1
++i是先自加1,再进行本语句运算。
如果只进行自加,而不涉及其他运算的情况下