一个C语言的基础问题

main()
{ int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}

一,为什么这里for语句后面也有分号?
二,执行结果是2+3,为什么for语句里i++每次带入的是自加后的值
而不是原值?
三,VisualC++软件里能不能使用printf语句?我记得那里面是>> <<这种符号表示输入输出的?

像n++这种问题我总是搞不明白在什么地方需要带入原值计算什么地方要自加1后再带入计算,求方法!

马上要考二级了,请高手帮助我回答完所有问题!剩余分全做酬谢了!!

第1个回答  2008-09-04
一、语句必须以分号结束,这个for后面的分号,代表空循环,如果不加分号,则下面printf("%d\n",s); 为循环体。
二、同行语句从左到右执行,i++,s+=i,i++自加,没能赋值,因此这边不管是i++,还是++i,最终,s+=i的时候i已经加1了。如果要理解前加与后加,应该是s+=i++;的时候i才存在前加与后加。
三、VC++可以使用printf,需包含头文件#include <stdio.h>
第2个回答  2008-09-04
一、如果for语句后面加分号,这时候只做for语句里的循环,其他不做,也就是循环了2次,第一次(s=2,i=2),第二次(s=5,i=3)。一般for语句后面不直接加分号,因为没意义。

二、i++是先用原值,然后再加;++i是先加后用。

三、VisualC++软件里能使用printf语句,因为C++语言向下兼容C语言。
第3个回答  2008-09-04
一个循环结束就的有;也可以说是一个语句结束后有;第二个问题i++就是说运行i后i自加1运行i后是什么呢?s+=i又运行了i所以变成2,还有一个是++i就是说先加1再计算下面的。上面的是c,环境变了,但语法不变,还有不明白的可以再问我,我们一起讨论下,二级其实不用紧张抽到好题很简单,抽到难题,不过关。
第4个回答  2008-09-04
你格式不正确for循环的基本格式是 for(<初始化>;<条件表达式>;<增量>)
所以你分号多了,还有就是结尾不用“;”。
相似回答