c語言和java語法上有什么區(qū)別-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)c語言和java語法上的區(qū)別,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)建站長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為蒙陰企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),蒙陰網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

c語法與java語法區(qū)別:

1、標(biāo)識符:

C可用的標(biāo)識符為數(shù)字、大小寫字母、下劃線,不能以數(shù)字開頭;

Java可用的標(biāo)識符除了C的三種以外,多一種美元符號($),同樣不能以數(shù)字開頭。

2、關(guān)鍵字:

C中的關(guān)鍵字有:

auto   break    case    char   const
continue   default    do    double   else
enum   extern    float    for   goto
if   int    long    register   return
short   signed    sizeof    static   struct
switch   typedef    union    unsigned   void
volatile   while

Java中的關(guān)鍵字有:

abstract   boolean    break    byte   case
catch   char    class    continue   default
do   double    else    extends   false
final   finally    float    for   if
implements    import   instanceof    int    interface
long   native    new    null   package
private   protected    public    return   short
this   throw    throws    transient   true
try   static    super    switch   synchronized
void   volatile    while

3、數(shù)據(jù)類型:

C中的數(shù)據(jù)類型有:

1)基本類型:整型(基本整型int、短整型short[int]和長整型long [int]以及有符號型[signed]、無符號型unsigned)、字符型[signed/unsigned ]char、浮點型(單精度型float、雙精度型double和長雙精度long double)、枚舉類型

2)構(gòu)造類型:數(shù)組類型、結(jié)構(gòu)體類型、共用體類型

3)指針類型

4)空類型

注意下各類型一般所占字節(jié)數(shù):

int:2字節(jié)

short:2字節(jié)

long:4字節(jié)

char:1字節(jié)

float:4字節(jié)

double:8字節(jié)

long double:16字節(jié)

以上存儲除char類型外,其他視系統(tǒng)不同略有不同,但低精度的位數(shù)不可以超過高精度的。

Java中的數(shù)據(jù)類型:

1)基本類型:字符型(char)、數(shù)值型(整型(字節(jié)型byte、短整型short、整型int、長整型long)、浮點型(單精度型float、雙精度型double))、布爾型(boolean(true或false))

2)復(fù)合類型:類、接口、數(shù)組

注意下各類型存儲所占字節(jié)數(shù):

byte:1字節(jié)

short:2字節(jié)

int:4字節(jié)

long:8字節(jié)

char:2字節(jié)(Unicode編碼)

float:4字節(jié)

double:8字節(jié)

以上數(shù)據(jù)類型對應(yīng)的存儲空間與平臺無關(guān),固定為該值。

4、常量和變量

1)常量

Java和C中整型常量定義相同,除長整型數(shù)據(jù)在其末尾加l或L外,其他類型均直接顯示數(shù)值。C中無符號常量在其后加u或U。對于不同進制,十進制直接顯示最高位不能有0,八進制以0開頭,十六進制以0x或0X開頭。

對于浮點類型,C和Java均只能采用十進制表示。可使用小數(shù)形式和指數(shù)形式,指數(shù)形式表示時小數(shù)與指數(shù)之間用e或E分隔。注意Java中要求單精度后要加f或F,雙精度后要加d或D以示區(qū)分。

字符型常量都是以單引號引起來的單個字符或轉(zhuǎn)義字串表示。特別注意,C中字符型只能表示ASCII碼從0~255的字符,Java中使用Unicode編碼2字節(jié)存儲單元可以表示特殊字符,表示unicode編碼時使用\u加4位16進制字串。

布爾類型只有Java中才有,需特別注意。

Java中常量用關(guān)鍵字final修飾,一經(jīng)賦值不可更改;C中表示不可更改的關(guān)鍵字是const,其修飾的變量(注意是變量,不是常量)必須在定義時賦初值,另外用#define定義的宏常量沒有類型。

2)變量

Java和C中變量的定義基本相同,即:

數(shù)據(jù)類型變量名[ = 變量初值];

變量可賦初值也可不賦,但Java中長整型和浮點型數(shù)后要加相應(yīng)識別標(biāo)志(如l、f)。

特別注意:由于編譯器的不同,C申明變量要放在可執(zhí)行語句之前,否則可能發(fā)生編譯錯誤。

5、邏輯運算符和位運算符

C和Java中都有的邏輯運算符&&、||、!三種,且意義相同,區(qū)別在于C中運算結(jié)果為0和非0,Java中只能是ture或false。Java中還存在&、|、^(異或),&和&&、|和||的區(qū)別在于前者是非捷徑運算符而后者是捷徑運算符,即&前后都做判斷,&&前為假不做后面的判斷,|前后都做判斷,||前為真不做后面的判斷。^表示兩者相同為假。

C和Java中都有的位運算符是:&、|、^、~(取反)、<<(左移)、>>(右移),意義基本相同。負數(shù)的右移運算在C中視不同系統(tǒng)有所不同(可能是算術(shù)右移也可能是邏輯右移),而Java中>>表示的是算術(shù)右移,即最高位填充符號位。Java中邏輯右移(無符號右移)運算符是>>>,采用補碼右移,高位添0。

PS:有心的讀者可能會發(fā)現(xiàn),如果你定義了一個byte或者short類型的負數(shù),如-10,采用>>>方法進行無符號右移后輸出的結(jié)果是-5,按照上面說的高位添0應(yīng)該是正數(shù)。而int或long類型的就不會是負數(shù),這是為什么呢?

我認為這是因為Java在進行>>>運算時采用的最低數(shù)據(jù)類型是int類型,導(dǎo)致高位數(shù)據(jù)全為1(計算機內(nèi)存儲的數(shù)據(jù)是以補碼存儲的,所以負數(shù)的byte或short類型轉(zhuǎn)成int類型高位全填充1),移位時高位的最后一個1移到低位的第一位,然后截取成我們定義的數(shù)據(jù)類型(byte或short),所以我們看到的數(shù)還是負數(shù)。從這里我們可以看出,在byte和short類型的數(shù)據(jù)做>>>運算的時候可能得不到我們想要的值,千萬注意。

6、數(shù)組

C中數(shù)組的定義如下:

類型說明符數(shù)組名[常量表達式];

定義可與初始化同時進行,如:int a[10] = {0,1,2,3,4,5,6,7,8,9};中括號內(nèi)的常量可以省略。

Java中數(shù)組定義有兩種方式:

數(shù)據(jù)類型 數(shù)組名[];或
數(shù)據(jù)類型 []數(shù)組名;

定義和初始化可同時進行,如:int []a = {0,1,2,3,4,5,6,7,8,9};

注意Java中數(shù)組如果在定義時沒有進行初始化,在進行初始化的時候需要先分配內(nèi)存,即:

數(shù)組名 = new 數(shù)據(jù)類型[常量表達式];

也可在定義同時進行內(nèi)存分配:

數(shù)據(jù)類型數(shù)組名[] = new 數(shù)據(jù)類型[常量表達式];

C和Java都不支持變長數(shù)組,引用的時候都是 數(shù)組名[下標(biāo)]。區(qū)別是:Java的下標(biāo)范圍為0~數(shù)組長度-1,不在該范圍會拋出數(shù)組下標(biāo)越界異常,而C有效范圍也是0~數(shù)組長度-1,但下標(biāo)超出此界不會報錯。

多維數(shù)組中,數(shù)組元素都是按行排列的。

還有一點要注意:C中定義數(shù)組不進行初始化則數(shù)組元素值是不可預(yù)知的,而Java中分配內(nèi)存而不進行初始化數(shù)組中是有默認值的。

7、語句

C和Java語句區(qū)別不大,主要是:

1)方法/函數(shù)調(diào)用時C直接調(diào)用函數(shù),Java調(diào)用方法時方法名前面要加對象名。

2)C中兩個嵌套的復(fù)合語句同時定義同名變量是可以的,而Java不可以。

8、類、域、方法和全局變量、函數(shù)

1)類是C中沒有的,Java中類定義如下:

[修飾符] class 類名[extends 父類名][implements 接口名]
{
//類體
}

其中修飾符可以為以下一個或多個訪問修飾符:

abstract:抽象類。

final:最終類。

public:公共類。

2)域(成員變量)和全局變量類比:

Java中域的定義如下:

[修飾符] 類型 成員變量名;

修飾符可選以下一個或多個關(guān)鍵字:

public:公共成員。

protected:本類或同一個包的其他類以及其它包該類的子類可訪問。

private:私有成員。

final:常量,確定后不能改變。

static:靜態(tài)變量。

transient:臨時變量。

volatile:備份變量。

各類型成員變量默認初始化為:

整型變量:0

浮點型變量:0.0

布爾型變量:false

字符型變量:空格

類變量:null

C中全局變量定義同一般變量:

[存儲類別] 數(shù)據(jù)類型 變量表列;

其中存儲類別可選:

auto:自動變量,當(dāng)不申明存儲類別時隱式默認該值。

static:靜態(tài)變量。

register:寄存器變量。

extern:外部變量。

3)方法和函數(shù)類比:

Java中方法的定義如下:

[修飾符] 返回類型 方法名([參數(shù)表列])
{
//方法體
}

修飾符可選以下一個或多個:

public:公共方法。

protected:本類或同一個包的其他類以及其它包該類的子類可訪問。

private:私有方法。

abstract:抽象方法,只有方法頭沒有方法體。

static:靜態(tài)方法。

C中函數(shù)的定義如下:

[存儲類別] [數(shù)據(jù)類型] 函數(shù)名([形參表列]) 
{
//函數(shù)體
}

存儲類別可選:

extern:外部函數(shù)。

static:靜態(tài)函數(shù)。

以上就是c語言和java語法上的區(qū)別,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章標(biāo)題:c語言和java語法上有什么區(qū)別-創(chuàng)新互聯(lián)
標(biāo)題URL:http://bm7419.com/article4/cedjie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、企業(yè)網(wǎng)站制作、小程序開發(fā)、App設(shè)計、企業(yè)建站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站