、 #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/11/25 03:02:37
、 #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的那个位置