| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 634 人关注过本帖
标题:c语言初学者前来请教各位高手
只看楼主 加入收藏
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
结帖率:92.31%
收藏
已结贴  问题点数:2 回复次数:13 
c语言初学者前来请教各位高手
#include<stdio.h>
#define S(x) 4*x*x+1
main()
{
  int i=6,j=8;
  printf("%d\n",S(i+j));
}
请各位高手给个指点,我认为这个程序的结果是在宏定义的结果中x的值是14,但是运行后结果却得到了81;刚学不久,请高手给个具体分析

[ 本帖最后由 因为曾今年少 于 2011-4-14 08:15 编辑 ]
搜索更多相关主题的帖子: include 
2011-04-14 08:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
你首先在一个文本编辑器---比如记事本---中输入 4*x*x+1
然后按CTRL+H进行查找替换,将 x 替换为 i+j,得 4*i+j*i+j+1
再将i替换为6,j替换为8,得 4*6+8*6+8+1
打开计算器,输入 4*6+8*6+8+1 得 81
2011-04-14 08:14
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
收藏
得分:0 
呵呵敢问高手
为什么会出现这种现象呢
还请指点
2011-04-14 08:19
cxylfmyyyy
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:22
专家分:39
注 册:2011-4-13
收藏
得分:0 
   求真相帝。

      纠结的生活。
2011-04-14 08:23
cxylfmyyyy
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:22
专家分:39
注 册:2011-4-13
收藏
得分:0 
   我感觉宏里X加个()应该就没问题了吧。

      纠结的生活。
2011-04-14 08:26
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
收藏
得分:0 
呵呵5楼你好
加个括号程序就出错了
2011-04-14 08:32
王立帅
Rank: 3Rank: 3
来 自:山东淄博
等 级:论坛游侠
帖 子:61
专家分:160
注 册:2011-4-4
收藏
得分:0 
程序代码:
#define S(x) 4*x*x+1
S(i+j) 被扩展为 4*i+j*i+j+1
显然不是你要的结果
#define S(x) 4*(x)*(x)+1
应该这样进行宏定义
S(i+j) 被扩展为 4*(i+j)*(i+j)+1

一个人走
2011-04-14 08:49
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
收藏
得分:0 
七楼的回答看懂啦,谢谢,不过可不可以请您给解析一下,为什么
#define S(x) 4*x*x+1
S(i+j) 被扩展为 4*i+j*i+j+1
上面的红字扩展是那样的呢?
谢谢
2011-04-14 08:57
王立帅
Rank: 3Rank: 3
来 自:山东淄博
等 级:论坛游侠
帖 子:61
专家分:160
注 册:2011-4-4
收藏
得分:0 
回复 8楼 因为曾今年少
#define S(x)  4*x*x+1
S(i+j) 相当于 用 i+j 去代替 x 注意是没有括号的啊
宏替换只作替换,不做计算,不做表达式求解

一个人走
2011-04-14 09:10
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
S((i+j))对吗?
2011-04-14 09:24
快速回复:c语言初学者前来请教各位高手
数据加载中...
 
   



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

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