大奥多少钱:大家帮我看看这个程序的输出结果,并说明原因~谢~

来源:百度文库 编辑:高考问答 时间:2024/05/06 02:36:36
int k,g;
k=210;
g=111;
printf("%d\n",++k);
printf("%d\n",g++);

结果应该是211 111
++在前面的时候是执行k=k+1,并返回加完1的结果
++在后面的时候是执行k=k+1,但是返回的是加1之前的结果.

也就是说++k的实现大概是
k++;
return k;

而k++的实现大概是
temp = k;
k++;
return temp;

其实你主要是想看++i与i++的区别而已。
++i,是先处理表达式,再输出;
i++,则是先输出,再处理。
这个就是体现两者差别的经典的例子。
PS:其实有些东西是很难理解的。

这个就是C语言里“++”“自增运算符”的用法:
“++K”表示先进行“k+1”的操作,再调用他的值,即:211。
“g++”表示先调用他的值,即:111,再进行“g+1”的操作,此后g的值会变成112。
故输出结果是:
211
111
附:你可参考谭浩强的《C程序设计》,里面把“++”,“--”讲的比较透
彻。还有华中科技大学出版社出版的《C语言程序设计教程》把“++”,“--”以及它们的混合运算和“延时和延时序列点”总结的更经典!