请高手帮我解决一下这道C语言题目,谢谢!

2024-12-30 04:58:15
推荐回答(2个)
回答1:

宏定义的本质是编译前替换。
也就是说在编译预处理结束,真正进入编译之前你的程序while(i<=4) printf("%d\t",POWER(i++));会变为while(i<=4) printf("%d\t",((i++)*(i++)));
这样每次while循环会使i+2;
所以程序的输出为
1 9

回答2:

power(i++)执行时先计算i的平方,并返回,再增加i,所以输出的结果是
1 4 9 16

printf中的"%d\t" 表示输出时按照十进制输出,没输出一个数后跟一个制表符