#include #define X 5 #define Y X+1 #define Z Y*X/2 main() { int a; a=Y; printf("%d %d\n",Z结果为什么是7 5呢,不解,
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 19:51:48
xRN@ u"Ѥ nP !цXJ Q@E0@P+b;m'+㦙s{Ϲp627)2L3rD4:Htrz$6
ΐDFMIb$cs$(ğ\}4n['f)N9
/pWl$K Czy;
#include #define X 5 #define Y X+1 #define Z Y*X/2 main() { int a; a=Y; printf("%d %d\n",Z结果为什么是7 5呢,不解,
#include #define X 5 #define Y X+1 #define Z Y*X/2 main() { int a; a=Y; printf("%d %d\n",Z
结果为什么是7 5呢,不解,
#include #define X 5 #define Y X+1 #define Z Y*X/2 main() { int a; a=Y; printf("%d %d\n",Z结果为什么是7 5呢,不解,
宏定义只执行简单的替换操作,就像你把X用5代替一定,Y就用X+1代替就是6,Z用Y*X/2代替,这时候要注意了,是X+1*X/2,也就是5+1*5/2,结果Z就是7,如果你#define Y (X+1),这是带了括号的,然后再去替换到Z里,又是另一个结果,(X+1)*X/2,把5带进去算就是15了,宏定义中带括号和没带括号差别很大的,要特别特别注意,因特他真的是很简单很简单的“替换”操作.