c语言c语言c语言c语言

#define MUL(A,B) A*B
int main()
{
inta=1,b=2,c=3,d=0;
d=MUL(a+b,c);
printf(“%d”,d);
return0;
}
这个程序输出是什么,为什么我运行不了。。还有这个
harch[]=“WelcometoXiyounet”
char*p=ch;
printf(“%c%c”,*(p+2),*p+2);

c

5个回答

 第一个程序,结果是7,在线验证
http://codepad.org/kJcc95Hr
解释下,因为宏替换只是简单的字符串替换,所以MUL(a+b,c);被替换为a+b*c,先算b*c,而不是a+b,所以是7

第二个程序,结果lY,在线验证
http://codepad.org/62uwXciR
因为*(p+2)先指针移动2个,也就是第三个字符,再得到值,所以结果是Welcome...的第三个字符l
*p+2是第一个字符W+2,W的ascii码+2,是 Y,所以第二个输出Y

第二个是char 少打上了

第一个为什么要用宏替换啊,你也太懒了吧

好像等于9吧,替换后是(a+b)*c

程序要规范啊,少了好多空格看起来好别扭。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问