#define F(x,y)x*(y) void main() {int a=3,b=4,c; c=F(a+b,(a++)+(b++));

[复制链接]
查看11 | 回复2 | 2013-3-14 23:09:04 | 显示全部楼层 |阅读模式
宏定义这里需要指出的是,会出现变量的越界问题。为了避免越界问题,通常在定义的时候要求#define F(x,y)(x)*(y)否则会出现变量的越界按照已有的宏定义,函数中c=F(a+b,(a++)+(b++)) = a+b *(,(a++)+(b++))----------------------(☆)分析(☆)执行过程:1、宏定义执行按照次序有
3+4 * (a++)+(b++)
=3+4*(3+4)=312、 执行完括号部分 a自加变成4,b自加变成53、 因此答案为31...
回复

使用道具 举报

千问 | 2013-3-14 23:09:04 | 显示全部楼层
3+4 * (a++)+(b++)=3+4*(4+5)=392、 执行完括号部分 a自加变成4,b自加变成53、 因此答案为39...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行