| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 556 人关注过本帖
标题:搞不明白的结果,请教下
只看楼主 加入收藏
andy0622
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
搞不明白的结果,请教下
#include <stdio.h>

int main(void)
{
   int x,y=55;
   for(x=1;y<=75;y=(x++*5)+50)

    printf("%10d %10d\n",x,y);

   return 0;
}

运行结果,x++时:
1  55
2  55
3  60
4  65
5  70
6  75
++x时:
1  55
2  60
3  65
4  70
5  75
疑惑是++x不是使用前,x+1的吗?  x++即时使用后+1,当x为2时也应该为60啊。


搜索更多相关主题的帖子: 结果 
2010-07-29 16:51
a151937404
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:117
注 册:2010-6-11
收藏
得分:6 
举个例子说:for(x=1;y<=75;y=(x++*5)+50),它的执行过程就是这样的:
1,使i=1。然后判断i是否小于75 。若成立就执行for所带的循环体,不成立就跳出循环执行后面的语句。
2,若在1中执行了循环体,然后就执行i++;再判断i<10是否成立,成立就执行循环体,否则跳出。
就这样一直执行到跳出循环体。
 使用x++时,先初始化x=1,再判断y是否小于75,根据初始化信息y=55,结果为真,执行循环体,打印  1  55,再执行
y=(x++*5)+50,x++是先使用x的值再使x自增1,完成后x=2,y=55。
  使用++x时,先初始化x=1,再判断y是否小于75,根据初始化信息y=55,结果为真,执行循环体,打印  1  55,再执行
y=(++x*5)+50,++x是先使x自增1,再使用x的值,完成后x=2,y=60。
2010-07-29 21:04
andy0622
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-21
收藏
得分:0 
以下是引用a151937404在2010-7-29 21:04:11的发言:

举个例子说:for(x=1;y<=75;y=(x++*5)+50),它的执行过程就是这样的:
1,使i=1。然后判断i是否小于75 。若成立就执行for所带的循环体,不成立就跳出循环执行后面的语句。
2,若在1中执行了循环体,然后就执行i++;再判断i<10是否成立,成立就执行循环体,否则跳出。
就这样一直执行到跳出循环体。
 使用x++时,先初始化x=1,再判断y是否小于75,根据初始化信息y=55,结果为真,执行循环体,打印  1  55,再执行
y=(x++*5)+50,x++是先使用x的值再使x自增1,完成后x=2,y=55。
  使用++x时,先初始化x=1,再判断y是否小于75,根据初始化信息y=55,结果为真,执行循环体,打印  1  55,再执行
y=(++x*5)+50,++x是先使x自增1,再使用x的值,完成后x=2,y=60。
谢谢指点,当时的迷惑就是y=(x++*5)+50,这句初始化时,Y值计算的时候看来无论++前置还是后置都没有意义的。
是不是可以这样理解?
2010-07-30 09:27
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:6 
以下是引用andy0622在2010-7-30 09:27:09的发言:

谢谢指点,当时的迷惑就是y=(x++*5)+50,这句初始化时,Y值计算的时候看来无论++前置还是后置都没有意义的。
是不是可以这样理解?

++前置后置结果是截然不同的
2010-07-30 10:01
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:6 
分辨i++和++i一试就知了:
int i=1;
printf("i=%d\n",i++);
printf("i=%d\n",i);
i=1;
printf("i=%d\n",++i);
printf("i=%d\n",i);
参考:http://wenku.baidu.com/view/7dbf6c21af45b307e87197d2.html
http://zhidao.baidu.com/question/18675886.html?fr=qrl&cid=93&index=1

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-30 10:05
a151937404
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:117
注 册:2010-6-11
收藏
得分:0 
回复 3楼 andy0622
不能这样理解,++在前表示先使x加一,再用这个值来计算y的值,y计算完后x的改为x+1;
 ++在后,就是先用x的值来计算y的值,计算完后x+1
2010-07-30 10:59
快速回复:搞不明白的结果,请教下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021372 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved