| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 634 人关注过本帖
标题:这两个程序有什么不同?还有第一个输出正常~!但第二个我就被搞晕了~!请大 ...
只看楼主 加入收藏
讀詠夅
Rank: 2
等 级:论坛游民
帖 子:56
专家分:80
注 册:2011-5-18
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:18 
这两个程序有什么不同?还有第一个输出正常~!但第二个我就被搞晕了~!请大虾指教~!
SQ(int y)
{
    return((y)*(y));
}   
main()
{
    int i=1;
    while(i<=5)
        printf("%d\n",SQ(i++));
}




#include "stdio.h"
#define SQ(y) ((y)*(y))
main()
{
    int i=1;
    while(i<=5)
    printf("%d\n",SQ(i++));
}
搜索更多相关主题的帖子: return 
2011-06-12 20:58
讀詠夅
Rank: 2
等 级:论坛游民
帖 子:56
专家分:80
注 册:2011-5-18
收藏
得分:0 
噢~~第一个忘了程序头文件忘写~!
2011-06-12 20:59
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:5 
while(i++<=5)
    {printf("%d\n",SQ(i));}
2011-06-12 21:04
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:5 
以下是引用讀詠夅在2011-6-12 20:58:44的发言:

SQ(int y)
{
    return((y)*(y));
}   
main()
{
    int i=1;
    while(i<=5)
        printf("%d\n",SQ(i++));
}




#include "stdio.h"
#define SQ(y) ((y)*(y))
main()
{
    int i=1;
    while(i<=5)
    printf("%d\n",SQ(i++));
}



第二个使用的是宏替换,不懂就去学吧。

—>〉Sun〈<—
2011-06-12 21:06
讀詠夅
Rank: 2
等 级:论坛游民
帖 子:56
专家分:80
注 册:2011-5-18
收藏
得分:0 
我知道是引用宏~~但是你用c软件运行一下~~跟我在书上的结果不一样~~不访你试试~!!!
2011-06-12 21:07
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
第二个应该是这样:
i=1:i*i=1,i++;i++;i=3
i=3:i*i=9;i++;i++;i=5
依次类推。
2011-06-12 21:08
讀詠夅
Rank: 2
等 级:论坛游民
帖 子:56
专家分:80
注 册:2011-5-18
收藏
得分:0 
第一个程序结果显示  1  4  9  16 25
那么请问第二个呢?
结果跟书上不一样~~迷惘中~!!
2011-06-12 21:09
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用讀詠夅在2011-6-12 21:07:53的发言:

我知道是引用宏~~但是你用c软件运行一下~~跟我在书上的结果不一样~~不访你试试~!!!



对于++的处理,每个编译器都几乎不同。所以和书上不一样,很正常。

不要相信你那本书。

[ 本帖最后由 cosdos 于 2011-6-12 21:12 编辑 ]

—>〉Sun〈<—
2011-06-12 21:11
讀詠夅
Rank: 2
等 级:论坛游民
帖 子:56
专家分:80
注 册:2011-5-18
收藏
得分:0 
大虾~~~但是它叫得很有道理耶~!!
图片附件: 游客没有浏览图片的权限,请 登录注册
附件为书的解释~!
2011-06-12 21:17
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
(i++)*(i++)  第一个i与第二个i值是相同的,表达式结束后i增加了2。

你的编译器肯定是:
1*1
3*3
5*5

—>〉Sun〈<—
2011-06-12 21:24
快速回复:这两个程序有什么不同?还有第一个输出正常~!但第二个我就被搞晕了~! ...
数据加载中...
 
   



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

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