#include <stdio.h>
int main()
{
int a = 4;
printf("a=4\n");
printf("(a)*(++a)=%d\ta=%d\n",(a)*(++a),a);
a = 4;
printf("(++a)*(++a)=%d\ta=%d\n",(++a)*(++a),a);
a = 4;
printf("(a++)*(a++)=%d\ta=%d\n",(a++)*(a++),a);
a = 4;
printf("(a++)*(a)=%d\ta=%d\n",(a++)*(a),a);
scanf("%d",&a);
}
反汇编代码:
运行结果截图:
结果表明,一个表达式中若存在前置自增符号,则会先依次执行自增操作,再用自增后的值计算表达式的值。例如a=4时(a)*(++a)等于25而不是4*5=20。后置自增符号同理,先用原值计算表达式的值,最后依次执行自增操作。
今天你
菊子曰了么?
转载于:https://www.cnblogs.com/mashang/archive/2011/03/24/1993509.html