自增自减运算符运算对象类型,自增自减运算符为什么不能用于表达式

自增自减运算符为什么不能用于表达式

自增自减运算符运算对象类型,自增自减运算符为什么不能用于表达式

文章插图
int i;
i++;//或者i--;是正确的 。
2++;//或者2--;是错误的 。因为常量不能自加 , 自减 。而表达式相当于常量 。
C语言 自增自减运算符应用举例 求解!
自增自减运算符运算对象类型,自增自减运算符为什么不能用于表达式

文章插图
x=5
-----
++x6 x=6
--x5 x=5
x++5 x=6
x--6 x=5
-x++ -5 x=6
-x-- -6 x=5
-----
我们把它们当成函数调用的形式来看 , 会比较好理解 。i做为参数传入 , 
在(++i,--i中 , ++,--做为前缀运算符) , 表达式的值为i+1或i-1.返回值为i+1或i-1.
在(i++,i--中 , ++,--做为后缀运算符) , 表达式的值为i,返回值为i+1或i-1.
看到有什么不同了吗?
在++ , --做为前缀运算符式 , 改变表达式的值 , 而作为后缀运算符时 , 表达式值不变 。
共同点是 , 无论做前缀或后缀 , 返回值都自加或自减 。
---------------------
....
int x=5;// x初始化值为5
printf("%d,",++x);// x=5,打印++x的值 , ++x的值为x+1 (5+1=6),返回值x+1,x=6
printf("%d,",--x"); // x=6,打印--x的值 , --x的值为x-1 (6-1=5),返回值x-1,x=5
printf("%d,",x++);// x=5,打印x++的值, x++的值为x (5),返回值x+1,x=6
printf("%d,",x--);// x=6,打印x--的值, x--的值为x (6),返回值x-1,x=5
printf("%d,",-x++); // x=5,打印-x++的值, x++的值为x (5) -x=-5 ,返回值x+1,x=6
printf("%d,",-x--); // x=6,打印-x--的值, x--的值为x (6) -x=-6 ,返回值x-1,x=5
【表达式的值】【返回的值】
....
ps:表达式的值和返回的值是两个概念 , -x++,-x--可看做-(x++),-(x--).++,--的优先级高于+,-
单目运算符++和--的运算对象是什么
自增自减运算符运算对象类型,自增自减运算符为什么不能用于表达式

文章插图
单目运算符自增自减运算符【++ ,  --】的运算定义的对象 , 例如a++或者是a--都是对对象a进行的操作 。
目运算符运算所需变量为一个的运算符叫单目运算符 , 又叫一元运算符 。
【自增自减运算符运算对象类型,自增自减运算符为什么不能用于表达式】