此题只需做如下修改就可以得到不一样的答案:
#include
//#define SQR(x) x*x
int SQR(int x)
{
return x*x;
}
int main()
{
int s=8,a=2,b=3;
s=SQR(a+b)*4;
printf("s=%d\n",s);
return 0;
}
//#define SQR(x) x*x 没有返回值,只有函数的形而没有函数的实,所以答案是20,相当的准确,LZ还不错啊,这个题都研究出来了,很容易出错的哦!
楼上你错的
以来s=SQR(a+b)*4就相当与
s=a+b*a+b*4=2+3*2+3*4=20
只是完全的字符代替
int a[4]={0,4,5,13}, *p;
p=&a[2];
printf("*p++=%d\n",*p++);//*p=4.而*的级别高于++.所以是先输出*p的内容在++.
我完全同意xkfrxh 的做法 这种才是对的啊
xkfrxh说得对,