可以說加不加int是沒有區(qū)別的。在ANSI C的標(biāo)準(zhǔn)中,main的標(biāo)準(zhǔn)返回值是整型,如果你什么都沒有加,編譯系統(tǒng)會(huì)自動(dòng)加上int類型的。這時(shí)如果你使用GCC的話(VC是沒有的)會(huì)有一個(gè)警告。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供十堰網(wǎng)站建設(shè)、十堰做網(wǎng)站、十堰網(wǎng)站設(shè)計(jì)、十堰網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、十堰企業(yè)網(wǎng)站模板建站服務(wù),十年十堰做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
因?yàn)檎Z法就是這樣啊,函數(shù)調(diào)用直接使用其函數(shù)名即可,函數(shù)是void類型只是標(biāo)識(shí)該函數(shù)沒有返回值而已。
一般有void,int,float,char等一般返回值。還有指針型 就是類型名(int,float,struct等)*函數(shù)名。但是不能是一個(gè)數(shù)組,或者一個(gè)字符串。
聲明 函數(shù),前面不加類型名,默認(rèn)為int。調(diào)用函數(shù),類型取決于 函數(shù) 聲明 時(shí) 定下的 類型。例如, 調(diào)用 int k;k = scanf(%d %d,&x,&y); // 返回整型。
語境“, 它表達(dá)了語言的意義,譬如:”謝謝你“和”謝謝你全家“, 謝謝是一個(gè)符號(hào),但是不同的語境下有不同的意義。正是因?yàn)榇?,C語言不管是函數(shù)參數(shù)傳遞還是使用標(biāo)識(shí)符進(jìn)行運(yùn)算,都必須指明其數(shù)據(jù)類型。
1、形參的類型是不能省略的。函數(shù)的存儲(chǔ)類型就是函數(shù)定義時(shí)函數(shù)名前面的數(shù)據(jù)類型前面的存儲(chǔ)類型,缺省時(shí)應(yīng)該是:extern ,表示該函數(shù)屬外部函數(shù)(即可以被本C文件外的其他C源程序文件中的函數(shù)調(diào)用)。
2、c語言中形參的缺省存儲(chǔ)類別是auto。程序進(jìn)行編譯時(shí),并5261不為形式參數(shù)4102分配存儲(chǔ)穿間。只有在被調(diào)用時(shí),形式1653參數(shù)才臨時(shí)地占有存儲(chǔ)空間。
3、c語言這樣是可以的,類型可以省略,也可以傳遞任意類型的變量給作為a,b來調(diào)用f函數(shù)。
4、extern表示外部引用,這個(gè)變量應(yīng)該是全局變量,在別的地方定義,函數(shù)里用extern只是引用。register表示寄存器變量,為了優(yōu)化變量使用效率,提示編譯器該變量常駐寄存器,但實(shí)際是否常駐寄存器,編譯器也是視情況而定的。
只需要用指針完全能夠達(dá)到這樣的效果啊,交換兩個(gè)整形變量的數(shù)據(jù),只要定義一個(gè)函數(shù) swap(int* a,int *b) 在函數(shù)里面交換*a和*b的值即可了,這樣便達(dá)到了修改形參而且改變實(shí)參的作用呀。
定義的時(shí)候確實(shí)可以不寫形參名字。你如果學(xué)了編譯原理的話可以知道函數(shù)間是如何傳參的(大多語言是通過棧),c語言是第n個(gè)參數(shù)先壓棧,再壓第n-1個(gè),。。再壓第一個(gè)。最后修改棧頂指針add esp,8。
和寫參數(shù)名的情況是一樣的。 調(diào)用時(shí)按照參數(shù)列表類型,傳入對(duì)應(yīng)個(gè)數(shù) 類型匹配的實(shí)參就行。聲明的時(shí)候,可以省略形參的參數(shù)名,而只保留類型。