若有以下宏定义:#define X 5#define Y X+1#define Z Y*X/2
若有以下宏定义:#defineX5#defineYX+1#defineZY*X/2则执行以下printf语句后,输出结果是。inta=Y;printf("%d,",Z);...
若有以下宏定义:
#define X 5
#define Y X+1
#define Z Y*X/2
则执行以下printf语句后,输出结果是 。
int a=Y;
printf("%d,",Z);
printf("%d\n",--a);
A. 7,6
可以说下那个Z的详细解答吗?不是很懂啊 展开
#define X 5
#define Y X+1
#define Z Y*X/2
则执行以下printf语句后,输出结果是 。
int a=Y;
printf("%d,",Z);
printf("%d\n",--a);
A. 7,6
可以说下那个Z的详细解答吗?不是很懂啊 展开
5个回答
展开全部
7、5
根据宏定义知:
X=5,
Y=X+1=6,
Z=Y*X/2
=X+1*X/2
=7,a=Y=6,
--a=5。
宏定义在 C 语言源程序中允许用一个标识符来表示一个==字符串==,称为“==宏/宏体==” ,被定义为“宏”的==标识符==称为“==宏名==”。
扩展资料
相对于==全局变量==两者的区别如下:
1.宏定义在编译期间即会使用并替换,而全局变量要到运行时才可以。
2.宏定义的只是一段字符,在编译的时候被替换到引用的位置。在运行中是没有宏定义的概念的。而变量在运行时要为其分配内存。
3.宏定义不可以被赋值,即其值一旦定义不可修改,而变量在运行过程中可以被修改。
4.宏定义只有在定义所在文件,或引用所在文件的其它文件中使用。而全局变量可以在工程所有文件中使用,只要再使用前加一个声明就可以了。换句话说,宏定义不需要extern。
展开全部
Y=X+1
那么Z=x+1*X/2
这个x+1没有括号
Z=5+1*5/2=7.5
%d是十进制整数
最后输出7
那么Z=x+1*X/2
这个x+1没有括号
Z=5+1*5/2=7.5
%d是十进制整数
最后输出7
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
7这个答案是对的,高赞评论已经解释过了,但是6是错的,--a是让a先减一,然后再用a,所以a的最终值应该是5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-07-01
展开全部
7,5
所谓宏定义就是简单替换。
所谓宏定义就是简单替换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
7,5
所谓宏定义就是简单替换。
所谓宏定义就是简单替换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询