代码演示
#include <stdio.h>
int main()
{
int i;
int tmp;
int a;
int b;
int *q;
int *p;
i =1;
printf("开始\n");
printf("i = %d \n",(++i)+(++i));
i =1;
a = ++i;
b = ++i;
a = i;
tmp =a+b;
printf("正确的分解运行 \n");
printf("i = %d \n",tmp);
i =1;
a = ++i;
b = ++i;
//a = i;
tmp =a+b;
printf("错误的分解运行 \n");
printf("i = %d \n",tmp);
i =1;
++i;
++i;
p = &i;
q = &i;
tmp = (*p) + (*q);
printf("指针的分解运行 \n");
printf("i = %d \n",tmp);
return 0;
}
运行结果
注意错误的分解运行错误点在于认为 前面的a的存储地址是独立的,实际上a的存储的是i地址的内容。因此在b赋值完成之后再次进行赋值;如果使用指针演示更加明显