1. 程式人生 > >Java 自增(++) 和 C語言中自增的區別

Java 自增(++) 和 C語言中自增的區別

%d 區別 但是 [] .cn cnblogs 微軟雅黑 自增 華麗

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

}

===============================================================

結論:

Java中我們可樣解釋,後加加運算a先自身加一,然後再將沒有運算的值賦給a,最終結果a==1。

c語言中是按照優先級來運算的,後加加優先級低,a先賦值給a自身,然後a再加加,最終結果a==2;

Java 自增(++) 和 C語言中自增的區別