從參數(shù)角度分類(lèi):1.有參函數(shù):函數(shù)有形參,可以是一個(gè),或者多個(gè),參數(shù)的類(lèi)型隨便,完全取決于函數(shù)的功能。2.無(wú)參函數(shù):函數(shù)沒(méi)有參數(shù),在形參列表的位置寫(xiě)一個(gè)viod或什么都不寫(xiě)。
創(chuàng)新互聯(lián)公司于2013年開(kāi)始,先為灤平等服務(wù)建站,灤平等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為灤平企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
每個(gè)C程序都至少有一個(gè)函數(shù),即主函數(shù)main(),如果程序的任務(wù)比較簡(jiǎn)單,全部的代碼都寫(xiě)在main()函數(shù)中,但是,在實(shí)際開(kāi)發(fā)中,程序的任務(wù)往往比較復(fù)雜,如果全部的代碼都寫(xiě)在main()函數(shù)中,main()函數(shù)將非常龐大臃腫,結(jié)構(gòu)復(fù)雜,代碼重復(fù)。
詳細(xì)信息:
我們可以根據(jù)程序的邏輯和任務(wù)的分工把代碼劃分到不同的自定義函數(shù)中,main()更關(guān)心業(yè)務(wù)邏輯和處理流程,需要執(zhí)行具體任務(wù)的時(shí)候,調(diào)用這些自定義的函數(shù)就可以了。
為了方使理解,我們把函數(shù)分為兩種:一種是庫(kù)函數(shù),一種是自定義函數(shù)。庫(kù)函數(shù)是C語(yǔ)言提供的,或系統(tǒng)提供的,實(shí)現(xiàn)了某些基本的功能,例如scanf、printf,在程序中可以直接使用。
自定義函數(shù)是程序員為了完成某項(xiàng)任務(wù)而編寫(xiě)的函數(shù),目的是為了實(shí)現(xiàn)某項(xiàng)的功能或讓主程序更簡(jiǎn)潔。程序員在使用自定義函數(shù)之前,必須先聲明和定義。
如果定義的時(shí)候是有參的, 調(diào)用的時(shí)候無(wú)參, 可編譯過(guò),
只能說(shuō)明在調(diào)用文件中沒(méi)有聲明或者聲明錯(cuò)誤.
這時(shí)會(huì)有不可預(yù)知的結(jié)果.
另外一種可能出現(xiàn)這種不同地方調(diào)用參數(shù)情況不同的,就是聲明的是可變參數(shù).
舉個(gè)栗子,比如計(jì)算a+b的值的函數(shù)
#includestdio.h
int?plus(int?a,int?b)
{
int?c?=?a+b;//2.此處定義的c無(wú)法被主函數(shù)直接調(diào)用,因?yàn)閏為局部變量
return?c;//3.要返回計(jì)算結(jié)果,只能用return語(yǔ)句
}
int?main()
{
int?i=5,j=7;
int?ans?=?plus(i,j);//1.該過(guò)程中,首先將i,j作為參數(shù)(與上面的plus函數(shù)說(shuō)明(m,n)一一對(duì)應(yīng))傳遞給plus函數(shù)。
printf("%d",ans);
}
如果是諸如函數(shù)聲明int fun(int b[]),這個(gè)是傳的地址,如果fun內(nèi)部有賦值操作,那么會(huì)改變數(shù)組b的元素的值
如果是執(zhí)行語(yǔ)句fun(b[i]);那么傳的就是b[i]這個(gè)值,執(zhí)行完fun后,b[i]的值不會(huì)變
a是一個(gè)指向指針的指針,a里面的內(nèi)容是另一個(gè)指針p的地址,那么*a就是p的地址,**a就是*p。
同理,b的內(nèi)容是另一個(gè)指針q的地址,*b就是q的地址,**b就是*q
t = *a, 那么t的內(nèi)容就是p的地址,
*a = *b, a里面的內(nèi)容變成了q的地址,即*a是q的地址,**a就是*q
*b = t, b里面的內(nèi)容變成了p的地址,即*b是p的地址,**b就是*p
這三句,將**a的值和**b的值互換了,是對(duì)指針的操作。
傳值方式:向函數(shù)傳遞參數(shù)時(shí),先復(fù)制一份參數(shù),然后才將復(fù)制品傳給參數(shù)。函數(shù)中所有對(duì)參數(shù)的操作,就只是在使用復(fù)制品。不會(huì)改變傳遞前的參數(shù)本身。
傳址方式:將地址傳送給函數(shù),函數(shù)對(duì)該地址的內(nèi)容操作,相當(dāng)于對(duì)實(shí)參本身的操作
#include cstdlib
#include iostreamusing namespace std;
int calculate( int a, int b, int c )
{
return a*a*a+b*b*b+c*c*c;
}
int main(int argc, char *argv[])
{
int x, y, z, l;
cout " 計(jì)算等式的結(jié)果 " endl;
cout " ------------------------------------------------- " endl;
cout " 請(qǐng)輸入x,y和z的值: ";
cin x y z;
l = calculate( x, y, z );
cout " 這3個(gè)數(shù)的立方和是 " l endl;
system("PAUSE");
return EXIT_SUCCESS;
}
做好了,請(qǐng)檢查。。。
網(wǎng)站欄目:c語(yǔ)言定義一個(gè)有參函數(shù) c語(yǔ)言中自定義的函數(shù)一定帶有參數(shù)
文章網(wǎng)址:http://jinyejixie.com/article2/docheic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站制作、小程序開(kāi)發(fā)、品牌網(wǎng)站建設(shè)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
營(yíng)銷(xiāo)型網(wǎng)站建設(shè)知識(shí)