++的实验

#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。后置自增符号同理,先用原值计算表达式的值,最后依次执行自增操作。

菊子曰 今天你菊子曰了么?
posted @ 2011-03-24 10:37  Record drip  阅读(198)  评论(0编辑  收藏  举报