a++ 和++a
程序1 #include<stdio.h>
void main()
{
int a=3,x;
x=(a++)+(a++);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果
x=6
a=5
程序2
#include<stdio.h>
void main()
{
int a=3,x;
x=(++a)+(a++);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果
x=8
a=5
程序3
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)+(a++)+(++a);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果
x=10
a=6
程序4
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)+(++a)+(a++);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果
x=12
a=6
这里为什么是12不是11啊?第一个(a++)=3,然后(++a)等于4,后面的那个(a++)不是也等于4么?可答案为什么是12啊???
程序5
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)*(a++);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果
x=9
a=3
程序6
#include<stdio.h>
void main()
{
int a=3,x;
x=(++a)*(a++);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果
x=16
a=5
程序7
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)*(a++)*(++a);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果
x=36
a=6
程序8
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)*(++a)*(a++);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果
x=64
a=6
第一个(a++)的值都为3,(++a)的值为4,然后(a++)=4,可结果!!!!!!!!!!!!!