为什么这段程序里不能是++n

来源:4-8 循环结构之for循环(一)

哲哲余

2018-11-07 21:04

#include <stdio.h>
int main()
{
    // 定义变量sum, num
    int sum, num; 
    sum = 0;
    for(num = 0;num<=10;++num) //for循环条件与num的变化值
    {
     sum=sum+num; //计算每次数字之间的和sum
    }
    printf("10以内数的和为:%d", sum);
    return 0;
}


为什么不可以是++n?

写回答 关注

6回答

  • 慕先生0271548
    2019-03-05 23:55:25

    其实在这里++m和m++没什么区别,因为num是0,如果num是1就不行了


  • 慕斯6557155
    2018-12-11 16:30:03
    对于这道题其实没什么差别,因为首先是判断num是不是<=0,接下来执行求和语句num+=sum,第三部才是num的自增,应为这一步无论是先自增还是后自增对于下一步来说都不影响,都会在下一次求和之前加1,只不过++n对于这道题其实没什么差别,因为首先是判断num是不是<=0,接下来执行求和语句num+=sum,第三部才是num的自增,应为这一步无论是先自增还是后自增对于下一步来说都不影响,都会在下一次求和之前加1,只不过++num是一次循环完毕后,而num++是当即运行。um是一次循环完毕后,而num++是当即运行。

    慕斯6557...

    有重复的,凑合看

    2018-12-11 16:31:17

    共 1 条回复 >

  • 俊哥仔
    2018-12-08 15:18:59

    此处 num++ 意思就是,先取num的值,即num=0,并不是取了num的值后就进入到表达式2的判断,而是进行num+1=1,得到num=1后随即进行表达式2的判断。

  • 慕少9421210
    2018-11-25 13:41:56

    不输出的话都一样 都是变成n=n+1

  • 慕运维5519014
    2018-11-11 19:22:09

    我跟你的疑问一样


  • 闰土无声
    2018-11-08 09:17:40

    ++n是先加再取值,这样会导致第一个数字为2而不是1

    n++是先取值再加,他会先去i=1,然后运行i+1并将值赋予i中得到2,以此类推

    闰土无声 回复慕运维551...

    确实++n和n++是没什么区别的,不管n++还是++n,n都要自身加1,但是如果是n++,则返回值为旧值,如果是++n,则返回值为新值。

    2018-11-13 09:54:17

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题