以上代碼中,sum函數(shù)在上面,main函數(shù)在下面,在main函數(shù)中就可以調(diào)用sum函數(shù)。
如果sum函數(shù)定義在main函數(shù)后面,則需要在main函數(shù)前面聲明sum函數(shù)。即在main函數(shù)前面寫:void sum(int begin, int end);
C語(yǔ)言中,習(xí)慣將函數(shù)聲明放在main函數(shù)前面,將函數(shù)定義放在main函數(shù)后面。如下面所示。
這點(diǎn)和java有很大區(qū)別。?
在java中,方法存放在同一個(gè)類中,只要在一個(gè)類中就可以相互調(diào)用。即在同一個(gè)類中,不論方法的定義在前還是后,main方法都可以調(diào)用,不分前后。
此外,c語(yǔ)言和java的區(qū)別還有:
1、變量賦值
int a = 5;
double d = 8.88;
a = d;
以上代碼第三行,將double類型的變量賦值給int類型,在C語(yǔ)言中,直接將小數(shù)部分舍棄掉,即a =8?。同樣的代碼,在java中是錯(cuò)誤的,將double類型的值賦值給int類型的變量,即需要強(qiáng)制轉(zhuǎn)換成int,強(qiáng)制類型轉(zhuǎn)換需要寫明類型,正確的寫法是a = (int)d;
2、bool類型
c語(yǔ)言中bool類型的存儲(chǔ)和輸出是整數(shù),是真用1表示,假用0表示。
,輸入和輸出都用%d的格式。使用bool類型需要添加頭文件,所以不如直接用int類型,對(duì)于寫選擇條件和循環(huán)條件時(shí)可直接用返回的int類型作為條件。
java中bool類型只有兩個(gè)值,true和false,并且不可以進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,所以對(duì)于選擇和循環(huán)條件必須是bool類型,不可以和1,0等價(jià)。
3、函數(shù)的定義的順序
在java中,同一個(gè)類中,方法的定義不分前后順序,都可以調(diào)用。在C語(yǔ)言中分順序,后面的函數(shù)才可以調(diào)用前面的函數(shù)。一般習(xí)慣將main函數(shù)放在最前面,調(diào)用其它函數(shù)。其它函數(shù)聲明在main函數(shù)之前,定義在main函數(shù)之后。
4、函數(shù)調(diào)用時(shí)類型不匹配
C語(yǔ)言中類型不匹配會(huì)自動(dòng)轉(zhuǎn)換為需要的類型。
在C語(yǔ)言中正常運(yùn)行,直接將double轉(zhuǎn)換成了int類型,沒有報(bào)錯(cuò)。
這種情況在C++和java中都是錯(cuò)誤的。因?yàn)閐ouble轉(zhuǎn)換為int是需要強(qiáng)制轉(zhuǎn)換的,丟失了精度無(wú)法實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換。
上面代碼中,形參是double類型,傳入的實(shí)參是int類型,int轉(zhuǎn)換為double,在C語(yǔ)言中沒有錯(cuò)誤。
在java中,由于實(shí)參是int類型,int轉(zhuǎn)換成double可以自動(dòng)轉(zhuǎn)換,所以在java中不會(huì)報(bào)錯(cuò)。?
交換值:
上述代碼中swap函數(shù)是交換a和b的值,交換的值在swap函數(shù)執(zhí)行結(jié)束后就失效了,所以,在main函數(shù)中調(diào)用swap函數(shù),沒有實(shí)現(xiàn)交換功能,是因?yàn)槌隽撕瘮?shù)就失效了。
調(diào)用swap函數(shù),實(shí)際上是將5賦值給swap函數(shù)的a,將6賦值給b,而swap函數(shù)中的a和b只是形參,一個(gè)名稱而已,和main中的a和b沒有關(guān)系。swap函數(shù)中的a和b交換了,但main中的a和b沒有變化。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧