#define SQUARE(a)((a)*(a))
程序代码:
#include <stdio.h> #define SQUARE(a)((a)*(a)) main(){ int a=5; int b=SQUARE(a++); printf("%d",b); getch(); }
结果是25,我怎么觉得应该是30啊?
程序代码:
#include <stdio.h> #define SQUARE(a)((a)*(a)) main(){ int a=5; int b=(a++)*(a++); printf("%d",b); getch(); }
这个结果怎么也是25?还是觉得应该是30
the answer is:
一个表达式多个++取决于编译器的方式,建议不要在同一个表达式中对同一变量施行多次自增运算
参见二楼heartnheart的说法
[ 本帖最后由 xuxu_c 于 2010-6-18 11:41 编辑 ]