Java 自增(++) 和 C语言中自增的区别
在Java、c语言等高级语言中自增和自减的作用基本一致,都是变量自身加一或减一。下面我只对自增进行说明,自减是类似的。
自增运算符(++),有两种书写形式,一个是在变量前: ++ num;
另一种在变量后 num++;他们的作用是一样的,但是优先级有很大的差别。
注:优先级代表该运算符执行的顺序,优先级越高越先执行。百度百科优先级表如下:
代码演示:
public class Test {
public static void main(String[] args) {
int a = 1;
int b = 0;
b = a++;//等价于 b=a; a++;
System.out.println("a=" + a + ",b=" + b);
System.out.println("=====华丽的分割线=====");
a = 1;//重新赋值为1
b = 0;//重新赋值为0
b = ++a;//等价于 a++;b = a;
System.out.println("a=" + a + ",b=" + b);
}
}
输出结果:
a=2,b=1
=====华丽的分割线=====
a=2,b=2
前加加优先级高先运算,后加加优先级低后运算;在c语言中这里的运算方式也是相同的。
===========================================================
差异:
Java代码:
public class Test {
public static void main(String[] args) {
int a = 1;
a = a++;
System.out.println(a);//输出结果为1
}
}
C语言代码:
#include<stdio.h>
void main() {
int a = 1;
a = a++;
printf("%d",a);//输出结果为2
}
===============================================================