一道程序题并解释 谢谢

来源:百度知道 编辑: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);
}

不同的编译器可能会有不同的结果。
结果是:
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++);
这语法对么?