C言语中的 i++ 问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 07:31:30
main()
{
int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
根据前缀、后缀,可得运行结果为:12353514
本来这个还算明白了,可是令我疑惑的是在for循环中i的自增。请看:
用for循环求1+2+3+……+100之和。
main()
{
int i,sum;
sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("sum=%d",sum);
}

我不明白的就是:for中的表达式 i++ 换成了 ++i 可程序运行的结果还是一样,难道这里就不分前缀,后缀了吗? 请能人指教啊!!!

不管是++i,还是i++,计算以后i的值都增加了1,而第一个中,m++是先printf了m的值,再让m自增1

那个for语句如果用while来写可能你就会明白了
i=1
while(i<=100)
{
sum = sum+i;
i++;
//++i;
},
你说这里的++i或i++有影响吗?

++是自动增加一的加法符号,可以使用于整型,指针类型,数组类型,++的使用是有限定条件的,必须在连续的内存地址中使用。
如果在变量前加入++符号,则是先增加,然后再使用,如果是在变量后面的++符号,则是使用后再增加。--符号与++符号使用规则相同。

第一个代码是人人喊打的代码,纯粹是写出来愚弄人。因为没有可移植性。

第2个代码中由于没有使用到i++或者++i的结果,因此对循环没影响,两种写法都可以。

++是自动增加一的加法符号,可以使用于整型,指针类型,数组类型,++的使用是有限定条件的,必须在连续的内存地址中使用。

如果在变量前加入++符号,则是先增加,然后再使用,
如果是在变量后面的++符号,则是使用后再增加。

--符号与++符号使用规则相同。

在for循环中不要i++也可以,java中默认是自加的,C语言应该也可以。因为是运行sum=sum+i了,才把i加1,所以这里i++ 和++i是一样的。

不管i++还是++i都是在for循环完成之后才进行的
也就是先进行sum+=i
所以在这儿它们的输出结果是一样的