在printf中 i++ i-- i要考试了~ 在线等啊

[复制链接]
查看11 | 回复3 | 2009-7-2 21:50:57 | 显示全部楼层 |阅读模式
#include “stdio.h”
main( )
{ inti=1;
printf(“%d,%d,%d,%d\n”, i, i++, i++, i++);
}
结果为什么是 4 3 2 1~~详细的嘛~我知道函数参数的求值顺序是从右到左。。。。
还有若i=2~i i++ i--结果是212~为什么啊?????我要考试了~在线等啊

回复

使用道具 举报

千问 | 2009-7-2 21:50:57 | 显示全部楼层
那个结果应该是1 1 1 1 吧。不是什么4 3 2 1。不信的话你去试试。首先有两种自加形式 i++和++i。先来说i++,i++是先把i的值赋给前面的表达式再自加一,而++i恰恰相反,它是先自加一再把值赋给前面的表达式。#include
#include
main()

{

...
回复

使用道具 举报

千问 | 2009-7-2 21:50:57 | 显示全部楼层
i,i++,i++,i++把最右边的i++称为1号,往左依次为2号,3号和4号的话,参数从右往左传入函数,执行1号i++;相当于{i;i=i+1;},所以输出的值是1,并且i变成2;然后执行2号i++;同理,输出的是2,并且i变成3;3号i++同理,输出3,并且i变成4;4号i的值就是4i=2,i,i++,i--的话同理...
回复

使用道具 举报

千问 | 2009-7-2 21:50:57 | 显示全部楼层
那个结果应该是1111吧。不是什么4321。不信的话你去试试。首先有两种自加形式i++和++i。先来说i++,i++是先把i的值赋给前面的表达式再自加一,而++i恰恰相反,它是先自加一再把值赋给前面的表达式。#include#includemain(){inti=1;printf("%d",i+...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行