++x 是什么意思,它与x++有什么区别?
两个操作都是自增操作,都只能对变量进行该操作,但是两种自增有些许区别:
1、++x先将x的值自增1,然后再在当前表达式中使用x的值。
2、x++先在当前表达式中使用x的值,然后再将x的值自增1。
例如inty=3,x=6。那么
++x+y=(6+1)+3=10,运算结束后x=7。
x+++y=6+3=9,运算结束后x=7。
运算特点
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。
首先,两个操作都是自增操作,都只能对变量进行该操作,但是两种自增有些许区别
++x 先将x的值自增1,然后再在当前表达式中使用x的值。
x++ 先在当前表达式中使用x的值,然后再将x的值自增1。
举例:
(1)int x=1;System.out.println(x++); //输出1, x++先在当前表达式中使用x的值,然后再将x的值自增1,System.out.println(x); //输出2,经过上一条指令x自增了1
(2)int x=1;System.out.println(++x); //输出2, ++x 先将x的值自增1,然后再在当前表达式中使用x的值,System.out.println(x); //输出2,经过上一条指令x自增了1。
x++实际上分为三个步骤 取值,计算,赋值 例如x=1,x++, 实际上JVM定义了一个缓存值y y=x;取值(只运算一次) y=y+1;
计算 x=y;赋值 而++x,步骤不一样, y=x;取值(只运算一次) x=y;赋值 y=y+1;计算 这就是书上说的x++是先计算后赋值 ++x是先赋值后计算。
扩展资料
C的运算符有以下几类:
1、算术运算符:* - + / %
2、关系运算符: > < == != >= <=
3、逻辑运算符:! && ||
4、位运算符:<< >> ~ | ^ &
5、赋值运算符:=及扩展赋值运算符
6、条件运算符:?:
7、逗号运算符:,
8、指针运算符:*和&
9、求字节数运算符:sizeof
10、强制类型转换运算符:(类型)
11、分量运算符:、 ->
12、下标运算符:[ ]
13、其他:如函数调用运算符:()
不同的是
++x是先将x的值加1,然后才参加运算;
x++则是先参加运算,然后再把x的值加1。
能不能举个例子,那个不同点我看不太懂。
好的
例如
int y=3,x=6;
那么
++x+y=(6+1)+3=10 运算结束后x=7
而
x++ + y=6+3=9 运算结束后x=7
x=1;
b=++x
那么b =2
先自加 再赋值
如果是b=x++;
那么b=1
先赋值 再自加
明白了吗
++x = 3; //正确
x++ = 3;//错误