| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1684 人关注过本帖
标题:小程序` 不明白
只看楼主 加入收藏
柒兲
Rank: 1
等 级:新手上路
威 望:1
帖 子:126
专家分:0
注 册:2007-9-26
收藏
 问题点数:0 回复次数:22 
小程序` 不明白
#include <stdio.h>
void main()
{
 int a;
    a=0;
 int i;
 for(i=0;i<3;i++)
 {
      a++;
  printf("%d\n",a);
 }
}

和下面的` 输出结果那么一样啊` 我用的`是VC++ 6.0``
#include <stdio.h>
void main()
{
 int a;
    a=0;
 int i;
 for(i=0;i<3;i++)
 {
      ++a;
  printf("%d\n",a);
 }
}
如果按` 书上的应该不一样多嘛` 真的蒙了~!
搜索更多相关主题的帖子: include 
2007-11-24 23:42
柒兲
Rank: 1
等 级:新手上路
威 望:1
帖 子:126
专家分:0
注 册:2007-9-26
收藏
得分:0 
望那位高手指点一下`!

2007-11-24 23:46
chump345
Rank: 1
来 自:家里蹲大学
等 级:新手上路
帖 子:108
专家分:5
注 册:2007-11-24
收藏
得分:0 
当然是一样了~在这里的话~不管是a++还是++a当执行到那个分号后A的值是一样的~所以输出的一样了~

凤凰涅磐,浴火重生!

2007-11-24 23:48
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
是一样的~~~
应该没有什么疑问呀?
LZ是哪不明白呀?

那我先说说自己的看法:
对于第一个程序:
首先是a=0;
然后运行到这一行for(i=0;i<3;i++)
再然后是a++
对于第一次a=0,当然运行到下一行时,也就是printf("%d\n",a);然后
a=a+1;此时a=1;
对于第二次a=1,当然运行到下一行时,也就是printf("%d\n",a);然后
a=a+1;此时a=2;
对于第二次a=2,当然运行到下一行时,也就是printf("%d\n",a);然后
a=a+1;此时a=3;
所以输出的应该是1,2,3

对于第二个程序:
首先是a=0;
然后运行到这一行for(i=0;i<3;i++)
再然后是++a
对于第一次a=1,当然运行到下一行时,也就是printf("%d\n",a);然后
a=a;此时a=1;
对于第二次a=2,当然运行到下一行时,也就是printf("%d\n",a);然后
a=a;此时a=2;
对于第二次a=3,当然运行到下一行时,也就是printf("%d\n",a);然后
a=a;此时a=3;
所以输出的应该是1,2,3

~~我的明天我知道~~
2007-11-24 23:55
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 
#include <stdio.h>
void main()
{
int a;
    a=0;
int i;
for(i=0;i<3;i++)
{
  printf("%d\n",a++);
}
}



int a;
    a=0;
int i;
for(i=0;i<3;i++)
{
  printf("%d\n",++a);
}
}
这样应该就不样了,a++是先应用后加,++a是先自加后应用

简单的快乐着~
2007-11-24 23:55
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 
#include <stdio.h>
void main()
{
int a;
    a=0;
int i,sum;
for(i=0;i<3;i++)
{
     sum=++a;                  //换a++

}
  printf("%d\n",sum);
}

准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2007-11-24 23:56
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 
#include <stdio.h>
void main()
{
int a;
    a=0;
printf("%d\n",a++);printf("%d\n",++a);
}

准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2007-11-25 00:01
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 
4楼的非常好

准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2007-11-25 00:01
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
精彩极了

i like linux...
2007-11-25 00:06
wubizao
Rank: 1
来 自:荆州长大电信
等 级:新手上路
帖 子:223
专家分:0
注 册:2006-6-24
收藏
得分:0 
对4楼的分析不明白.....
不管是a++;
还是++a;
分号代表着一个顺序点
应该在下一个语句前所有副作用都会生效
所以a++;
++a;
执行后a都被加1
并非printf("%d\n",a)后a=a+1
不知道我理解的对否?

在路上走,看见了C,从此爱上了她
2007-11-25 09:31
快速回复:小程序` 不明白
数据加载中...
 
   



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

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