++的实验
#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。后置自增符号同理,先用原值计算表达式的值,最后依次执行自增操作。
今天你菊子曰了么?