比較c語言和java的字符數據類型?
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語言,都是很接近人的語言的,使用者應當選擇合適自己,合適環境的語言,并且要學會抽象,學會注意細節,再加以理論上的理解和實際的一些操作便可以很好地運用了。