#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 编辑 ]









