回覆列表
  • 1 # 錢布斯

    1. 資料型別:

    共同點:資料型別決定了記憶體中儲存資料的型別及所需記憶體的大小。

    都滿足自動型別轉換和強制型別轉換。

    都透過定義變數來申請資料儲存空間,並透過變數名獲取或改變儲存的值。

    常量是值不可變的變數,即不能重新賦值。

    不同點:

    Java:Java的資料型別可分為兩大類:

    -基本資料型別:byte、short、int、long、double、float、boolean、char

    -引用資料型別:類、介面、陣列、列舉、註解

    變數與常量:

    -常量有final關鍵字修飾。

    基本資料型別引用:

    -定義float型別時,賦值時一定要在浮點數後加f,否則自動視為double型別,且會編譯失敗。

    -Java中當高精度賦值給低精度型別時,會編譯失敗,顯示不相容的型別。

    -Java中字元型中字元對應的Unicode編碼。

    -Java字元型佔兩個位元組。

    C語言:C語言的資料型別可分為:

    -基本資料型別:short int、int、long int、double、float、char、long longint(C99增加)、long double、bool(C99增加)、float_complex、double_complex、long long _complex

    -列舉型別:enum

    -空型別:void

    -派生型別:指標型別(*)、陣列型別([])、結構體型別(struct)、共用體型別(union)、函式型別

    變數與常量:

    -常量由#define定義。

    基本資料型別引用:

    -C語言中定義浮點型不會出現類似問題。

    -C語言中當高精度賦值給低精度型別時,會有精度缺失,但並不會造成編譯失敗。

    -C語言中字元型中字元對應ASCII碼。

    -C語言中字元型佔一個位元組。

    2. 計算機內的儲存原理:

    共同點:補碼是計算機用於規範計算的一種二進位制表示方式,由於計算機使用數值的第一位來表示資料的正負,例如:00000011表示+3,而10000011表示-3,這些非0數值在邏輯上的表示都是沒有問題的,這中表示方法稱為源碼錶示法。但是用00000000表示+0,而10000000表示-0,則出現邏輯上的偏差,即:+0 不等於 -0。為了解決這個問題,提出了補碼錶示法。

    • 補碼的計算公式:

    正數:原始碼、反碼和補碼都相同。

    負數:補碼 = 反碼(符號位保持不變)+ 1

    • 注意:

    負數在計算補碼的時候,在原始碼取反的過程中要保留符號位不變,其他位取反,例如:10001010取反11110101(第一個1不變)。

    不同點:

    Java:先將編碼轉換為位元組碼檔案,再透過JVM虛擬機器轉換為二進位制碼,再儲存到計算機中,由計算機輸出內容。

    C語言:直接將編碼轉換為二進位制碼,由計算機識別輸出。

    3. 識別符號:

    共同點:各種資料型別的定義都需要識別符號。

    識別符號標準的比較:

    Java:Java識別符號有如下命名規則:

    1、識別符號由字母、數字、 “_”、 “$”組成,且首字母不能是數字;

    2、不能把Java關鍵字作為識別符號;

    3、識別符號沒有長度限制;

    4、識別符號對大小寫敏感。

    5、自定義識別符號最好取具有一定意義的字串,便於記憶和理解。

    C語言:C語言識別符號有如下規則:

    1、識別符號必須以字母a~z、 A~Z或下劃線開頭,後面可跟任意個(可為0)字元,這些字元可以是字母、下劃線和數字,其他字元不允許出現在識別符號中。

    2、識別符號區分大小寫字母

    3、識別符號的長度,c89規定31個字元以內,c99規定63個字元以內

    4、C語言中的關鍵字,有特殊意義,不能作為識別符號

    5、自定義識別符號最好取具有一定意義的字串,便於記憶和理解。

    4. 運算子:

    兩者運算子基本相同,如下:

    算術運算子:+、-、*、/、%、++、- -

    賦值運算子:=、+=、-=、*=、/=等等

    位運算子:~、&、|、^

    邏輯運算子:!、&&、||

    關係運算符:>、<、>=、<=、= = 、!=

    移位運算子>>、<<、>>>(無符號右移)

    運算子優先順序:

    • 運算子的優先順序從高到低的順序進行,優先順序相同的運算子按照事先約定的結合方向進行,運算子優先順序如下:

    以上就是一些關於JAVA和C語言的比較,只是一些在基礎語法上的比較,其實無論是JAVA還是C語言,都是很接近人的語言的,使用者應當選擇合適自己,合適環境的語言,並且要學會抽象,學會注意細節,再加以理論上的理解和實際的一些操作便可以很好地運用了。

  • 中秋節和大豐收的關聯?
  • 額頭宅,臉大的人適合什麼劉海?