、 #define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf("%d",M(a+b,b+c,c+a)); } 这道题我口算结果、#define M(x,y,z) x*y+zmain(){int a=1,b=2,c=3;printf("%d",M(a+b,b+c,c+a));}这道题我口算结果是19,答案是12,为什么?main(){char a
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/22 00:56:19
![、 #define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf(](/uploads/image/z/2257951-31-1.jpg?t=%E3%80%81+%23define+M%28x%2Cy%2Cz%29+x%2Ay%2Bz+main%28%29+%7B+int+a%3D1%2Cb%3D2%2Cc%3D3%3B+printf%28%22%25d%22%2CM%28a%2Bb%2Cb%2Bc%2Cc%2Ba%29%29%3B+%7D+%E8%BF%99%E9%81%93%E9%A2%98%E6%88%91%E5%8F%A3%E7%AE%97%E7%BB%93%E6%9E%9C%E3%80%81%23define+M%28x%2Cy%2Cz%29+x%2Ay%2Bzmain%28%29%7Bint+a%3D1%2Cb%3D2%2Cc%3D3%3Bprintf%28%22%25d%22%2CM%28a%2Bb%2Cb%2Bc%2Cc%2Ba%29%29%3B%7D%E8%BF%99%E9%81%93%E9%A2%98%E6%88%91%E5%8F%A3%E7%AE%97%E7%BB%93%E6%9E%9C%E6%98%AF19%2C%E7%AD%94%E6%A1%88%E6%98%AF12%2C%E4%B8%BA%E4%BB%80%E4%B9%88%3Fmain%28%29%7Bchar+a)
、 #define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf("%d",M(a+b,b+c,c+a)); } 这道题我口算结果、#define M(x,y,z) x*y+zmain(){int a=1,b=2,c=3;printf("%d",M(a+b,b+c,c+a));}这道题我口算结果是19,答案是12,为什么?main(){char a
、 #define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf("%d",M(a+b,b+c,c+a)); } 这道题我口算结果
、
#define M(x,y,z) x*y+z
main()
{
int a=1,b=2,c=3;
printf("%d",M(a+b,b+c,c+a));
}
这道题我口算结果是19,答案是12,为什么?
main()
{
char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
prinft("%d",*p);
}
这道题我算对了,但是我是这样理解的,a是这个数组的地址名,所以值应该是-1,所以结果就是4,
、 #define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf("%d",M(a+b,b+c,c+a)); } 这道题我口算结果、#define M(x,y,z) x*y+zmain(){int a=1,b=2,c=3;printf("%d",M(a+b,b+c,c+a));}这道题我口算结果是19,答案是12,为什么?main(){char a
1 宏只是简单的替换,所以M(a+b,b+c,c+a)展开后就是:a+b*b+c+c+a = 12
2 a是这个数组的首指针,指向数组第一个元素,也就是9,a+5指向数组第6个元素,也就是4.
a
宏是纯文本替换,那句话会被展开成这种形式:a+b*b+c+c+a
对于第二个,a指向这个数组的首地址,a+5代表这个地址向前移动五个位置,也就对应数组中值为4的那个位置