首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
软件逆向
发新帖
0
0
请指点C程序题
发表于: 2005-1-11 16:25
3951
请指点C程序题
askformore
18
2005-1-11 16:25
3951
本人的逻辑思维很差,还请指点下面的C程序题?
有以下程序
#define f(x) x*x /*这里是定义宏呀*/
main( )
{ int i;
i=f(4+4)/f(2+2); /*这行真不好理解,宏扩展真难理解*/
printf("%d\n",i);
}
执行后输出结果是(28)
不解,请拆解指教i 的运算过程
有以下程序
int a=2;
int f(int *a)
{return (*a)++;}
main( )
{ int s=0;
{ int a=5; /*这里不是给定了新值,下面第一行的s+=f(&a)怎么好像没有用吗?*/
s+=f(&a);
}
s+=f(&a);
printf("%d\n",s);
}
执行后输出结果是(7)
不解,请拆解指教s 的运算过程
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
8
)
firstrose
雪 币:
390
活跃值:
(707)
能力值:
( LV12,RANK:650 )
在线值:
发帖
75
回帖
938
粉丝
6
关注
私信
firstrose
16
2
楼
1、宏定义是原样展开的。
4+4*4+4/2+2*2+2=28
2、注意变量作用域
5+2=7
里面的那个变量到第2个f时已经废了。
2005-1-11 16:34
0
prince
雪 币:
603
活跃值:
(617)
能力值:
( LV12,RANK:660 )
在线值:
发帖
51
回帖
1874
粉丝
8
关注
私信
prince
16
3
楼
经典考题。
2005-1-11 20:04
0
DonQuixote
雪 币:
135
活跃值:
(226)
能力值:
( LV12,RANK:330 )
在线值:
发帖
27
回帖
224
粉丝
1
关注
私信
DonQuixote
8
4
楼
第一个关键要理解宏仅仅是文本替换
#define f(x) x*x 只是表示在遇到f时把宏参数文本替换一下,是编译以前做的处理
第二个{}表示变量作用域,{ int a=5;算是这个{}里的局部变量
这种声明在for(int i=0;;)或者case x:{}这样的结构里用很方便
2005-1-11 21:29
0
askformore
雪 币:
383
活跃值:
(786)
能力值:
( LV12,RANK:730 )
在线值:
发帖
73
回帖
349
粉丝
2
关注
私信
askformore
18
5
楼
thanks:D
2005-1-12 09:21
0
东南破佛
雪 币:
387
活跃值:
(216)
能力值:
( LV4,RANK:50 )
在线值:
发帖
3
回帖
57
粉丝
1
关注
私信
东南破佛
1
6
楼
大学里面学的C现在都快忘光了,长见识了:D
2005-1-12 10:02
0
DonQuixote
雪 币:
135
活跃值:
(226)
能力值:
( LV12,RANK:330 )
在线值:
发帖
27
回帖
224
粉丝
1
关注
私信
DonQuixote
8
7
楼
今天C++期末考试考了第一个宏展开,结果结果居然做错了...shit...对着纸张没有感觉
2005-1-18 19:57
0
NF7
雪 币:
200
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
7
粉丝
0
关注
私信
NF7
8
楼
1:简单(运算符优先)先乘后除然后加起来就那结果
2:搞清全局变量跟局部变量的关系+运复符优先的关系
第一次调用f()用的是局部变量 返回 5 S=5
第二次调用f()用的是全局变量 返回 2 S=5+2
2005-1-18 20:16
0
RoBa
雪 币:
519
活跃值:
(1223)
能力值:
( LV12,RANK:650 )
在线值:
发帖
75
回帖
857
粉丝
9
关注
私信
RoBa
16
9
楼
最初由 DonQuixote 发布
今天C++期末考试考了第一个宏展开,结果结果居然做错了...shit...对着纸张没有感觉
真幸福
2005-1-19 09:44
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
askformore
18
73
发帖
349
回帖
730
RANK
关注
私信
他的文章
有点怪的脱壳后平台运行倒闭?
5311
pelist
5003
function mktime()格式怎样用?
4639
脱壳感想[分享]
9227
终于有时间 upack safe103
5038
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部