嗯,我認為也不能調(diào)用,
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的高明網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
在func這個函數(shù)里,one被優(yōu)先識別為一個整形的變量,而不是一個函數(shù),
#include
stdio.h
void
one(int
a,int
b);
int
func(int
one,int
c);
int
main()
{
func(1,2);
return
0;
}
void
one(int
a,int
b)
{
printf("%d
%d",a,b);
}
int
func(int
one,int
c)
{
printf("%d
%d",one,c);
one(3,4);
}
在這段代碼里可證實我的說法,該代碼不能運行,錯誤信息為:"在func函數(shù)中one不能作為一個函數(shù)"
所謂函數(shù)返回值是一個函數(shù)在運算結(jié)束以后向調(diào)用它的母函數(shù)或者系統(tǒng)反饋一個值,這個值可以是各種變量類型.
舉個簡單的例子:
int add(int a,int b)
{
return (a+b);
}
int main()
{
int res;
res=add(3,4);
printf("%d",res);
return 0;
}
在主函數(shù)main中調(diào)用子函數(shù)add,并傳遞參數(shù)3和4過去,add經(jīng)過運算后得到值7,通過return語句將得到的值返回給調(diào)用它的main函數(shù)供其使用,而在main中,返回值被用于給res賦值。
函數(shù)返回值就可以理解為解決一個問題以后得到的結(jié)論,把這個結(jié)論交給別人,就像寫在書上成為一個定理,來讓別人使用。
C語言中,函數(shù)調(diào)用的一般形式為:
函數(shù)名(實際參數(shù)表)
對無參函數(shù)調(diào)用時則無實際參數(shù)表。實際參數(shù)表中的參數(shù)可以是常數(shù)、變量或其它構(gòu)造類型數(shù)據(jù)及表達式。各實參之間用逗號分隔。
#includestdio.h
int?fun(int?x,?int?y);?//?函數(shù)聲明,如果函數(shù)寫在被調(diào)用處之前,可以不用聲明
void?main()
{
int?a=1,?b=2,?c;
c?=?fun(a,?b);?//?函數(shù)的調(diào)用,調(diào)用自定義函數(shù)fun,其中a,b為實際參數(shù),傳遞給被調(diào)用函數(shù)的輸入值
}
//?自定義函數(shù)fun
int?fun(int?x,?int?y)??//?函數(shù)首部
{??//?{}中的語言為函數(shù)體
return?xy???x?:?y;??//?返回x和y中較大的一個數(shù)
}
擴展資料
C語言中不允許作嵌套的函數(shù)定義。因此各函數(shù)之間是平行的,不存在上一級函數(shù)和下一級函數(shù)的問題。但是C語言允許在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調(diào)用。
這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)。這與其它語言的子程序嵌套的情形是類似的。其關(guān)系可表示如圖。
圖表示了兩層嵌套的情形。其執(zhí)行過程是:執(zhí)行main函數(shù)中調(diào)用a函數(shù)的語句時,即轉(zhuǎn)去執(zhí)行a函數(shù),在a函數(shù)中調(diào)用b 函數(shù)時,又轉(zhuǎn)去執(zhí)行b函數(shù),b函數(shù)執(zhí)行完畢返回a函數(shù)的斷點繼續(xù)執(zhí)行,a函數(shù)執(zhí)行完畢返回main函數(shù)的斷點繼續(xù)執(zhí)行。
參考資料:函數(shù)調(diào)用_百度百科