/* a++.C -- a++, ++a */
#include "stdio.h"
#include "conio.h"
main()
{
int a,b,c,d,e;
a = 10;
b = a++; /* 先赋值,再计算 也就是b=10 赋值完a=11 */
c = ++a; /* 先计算++,c=12 a=12 */
d = 10 * a++; /* 先赋值d 然后a++ d=120 a=13 */
e = (++a,b++,a++,++b); /* 逗号运算符是从左往右做取最后一个表达式的值 */
printf("a,b,c,d,e:%d,%d,%d,%d,%d",a,b,c,d,e);
getch();
/* 错误的表达式
(a++) += (a++);
a++ = a++;
a = a++ = 5;
在c/c++中规定:左操作数必须是一个左值
左值就是在赋值中可以放在赋值操作符两边的值
而右值则是只可以放在赋值操作符右边的值
一切变量都是左值,但const量是例外
一切常数、字符和字符串都是右值 ,不能放在赋值操作符左边
(-i)++来说,-i是一个表达式,而不是一个变量,
一个表达式是不可以作为左值的,
因为没有办法执行这条语句:-i=-i+1(-i+1的值不能附给-i,因为没有-i这个变量存储空间)
*/
}