C语言编程求解释

intcouter=0;while(couter++<=10)printf("%d\n",couter);和intcouter=0;while(++couter<=10)... int couter=0;
while(couter++<=10)
printf("%d\n",couter);



int couter=0;
while(++couter<=10)
printf("%d\n",couter);

(主要是第二行)这两个的区别不理解。。电脑分别到底是先进行哪步再进行哪步的?为什么第一个会是1到11?求大神详细讲下
展开
 我来答
统一YH
2012-09-22 · 超过10用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:27万
展开全部
第一个:先运算,后++;
第二个是:先++,后运算。
第一个的时候counter算到10的时候,10<=10是可以的,此时counter为10,算完再加1就变11了
第二个的时候counter算到9的时候,先加1变成10之后10<=10,就输出了10,再来11>10就不行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
完蛋闹
2012-09-23 · TA获得超过100个赞
知道答主
回答量:83
采纳率:0%
帮助的人:55万
展开全部
从1到11的原因:
++操作符在表达式中使用有先后之分,当第一次执行couter++ <= 10 这个表达式时,couter使用的值是0,然后couter加1,此时couter = 1,然后执行下面的printf表达式,从而输出1。

到最后一次循环的时候couter = 10,满足couter <= 10的条件,然后couter++,继而输出11。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mapoor
2012-09-22 · TA获得超过777个赞
知道小有建树答主
回答量:225
采纳率:100%
帮助的人:198万
展开全部
hi. 紫游
关于i++ 和 ++i 请记住一点 i++是在本行代码结束后+1的。
可以查看一下关于i++代码的汇编代码。

对于
int couter=0;
while(couter++<=10) //counter最初为0 运行<=代码,判断结果返回while 最后自己+1
printf("%d\n",couter); //counter现在为1

++i不用说了

对于像i++ + ++i这种变态的语句最好不要去看了,没意思,可能因为编译器不同而结果不同。
除非参见什么国际乱码大赛可以用上之外 几乎别无用处。

希望能帮到你
追问
好像懂了,就是对于这个的第一次循环
int couter=0;
while(couter++<=10) 这时couter还是0,比较完后加了1并存储
printf("%d\n",couter); 于是这里输出1
对吗?
追答
对的.  就是这个意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿斯
2012-09-23 · TA获得超过3153个赞
知道大有可为答主
回答量:2538
采纳率:14%
帮助的人:1847万
展开全部
先运行 couter = 0
然后 开始循环,每次给couter +1 并且把值打出来,直到couter不满足<=0找个条件,停止循环

至于连个的区别
第一个是 couter 自身每次加1
第二个是 每次加couter 本身的0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
疲惫的龟
2012-09-22 · TA获得超过2209个赞
知道小有建树答主
回答量:638
采纳率:100%
帮助的人:393万
展开全部
其实区别就是::
第一个:先运算,后++;
第二个是:先++,后运算。
更多追问追答
追问
那在这里面输出那个操作步骤放在哪?
追答
输出那个操作步骤放哪儿?我不太明白你问的问题。请描述详细点儿吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式