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
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
}
===============================================================
結論:
在Java中我們可樣解釋,後加加運算a先自身加一,然後再將沒有運算的值賦給a,最終結果a==1。
在c語言中是按照優先級來運算的,後加加優先級低,a先賦值給a自身,然後a再加加,最終結果a==2;
Java 自增(++) 和 C語言中自增的區別