一道程序题并解释 谢谢
来源:百度知道 编辑:UC知道 时间:2024/05/16 09:41:50
#define N a*a;
void main()
{
int k=3;
p=N(k++);
q=N(++k);
printf("%d,%d\n" p q);
}
void main()
{
int k=3;
p=N(k++);
q=N(++k);
printf("%d,%d\n" p q);
}
不同的编译器可能会有不同的结果。
结果是:
9 25
p=9
q=16
k++ k先参与运算,然后加1
++k k先加1,然后参与运算。
你没定义并给出a 的值,编译会报错的。
可以在main函数里加入 int a=数值;
#define N a*a;
p=N(k++);
编译以后岂不是
p=a*a(k++);
这语法对么?