可以.C語言中,任何函數(shù)都可以直接或間接地被自己或其他函數(shù)調(diào)用,包括main函數(shù)(注意我說的是C,不是C++)

創(chuàng)新互聯(lián)客戶idc服務(wù)中心,提供德陽機房服務(wù)器托管、成都服務(wù)器、成都主機托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價的產(chǎn)品以及開放、透明、穩(wěn)定、高性價比的服務(wù),資深網(wǎng)絡(luò)工程師在機房提供7*24小時標(biāo)準(zhǔn)級技術(shù)保障。
例如,典型的利用main遞歸實現(xiàn)逆序輸出
#include?stdio.h
int?main()
{
int?c;
if((c=getchar())?!=?EOF)?//EOF?用Ctrl+Z?或者?F6
{
main();
}
printf("%c",c);
return?0;
}
主函數(shù)不能調(diào)用自己。
主函數(shù)實際上是有參函數(shù),從操作系統(tǒng)傳入變量,結(jié)束時有數(shù)值返回操作系統(tǒng)。
int main(int argc, char *argv[]){
return 0;
}
其中:
int argc, char *argv[] 從操作系統(tǒng)傳入
return 0; 返回操作系統(tǒng)
如果你的數(shù)據(jù)不需要同操作系統(tǒng)發(fā)生關(guān)系,你可以寫成自定義函數(shù),主函數(shù)里就一個語句--調(diào)用這個自定義函數(shù)。
當(dāng)然可以!
C語言程序的最基本的模塊就是函數(shù),
該程序規(guī)定:任意函數(shù)都可以調(diào)用其它任意一個函數(shù),包括函數(shù)本身;
1、函數(shù)調(diào)用自己本身, 這種稱為遞歸;
通過遞歸,計算1+2+3+...+n值的代碼:
2、自定義函數(shù)調(diào)用其它自定義函數(shù)的例子:
這個例子就是主函數(shù)調(diào)用自定義函數(shù)fun2,然后fun2調(diào)用另一個自定義函數(shù)fun1;
可以的,前提是,在使用一個函數(shù)之前必須先對他進(jìn)行聲明:
//void B();聲明B函數(shù)的存在。
void A()
{
B();//非法,程序執(zhí)行到此時并不知道B函數(shù)的存在。
}
void B()
{
}
或者
#include stdio.h
#include stdlib.h
#include math.h
int fa(int n)
{
int a;
for(a=2;a=sqrt(n*1.0),n%a!=0;a++);
if(asqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",n);
擴展資料
從函數(shù)定義的角度看,函數(shù)可分為庫函數(shù)和用戶定義函數(shù)兩種。
(1)庫函數(shù)
由C系統(tǒng)提供,用戶無須定義, 也不必在程序中作類型說明,只需在程序前包含有該函數(shù)原型的頭文件即可在程序中直接調(diào)用。在前面各章的例題中反復(fù)用到printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函數(shù)均屬此類。
(2)用戶定義函數(shù)
由用戶按需要寫的函數(shù)。對于用戶自定義函數(shù), 不僅要在程序中定義函數(shù)本身, 而且在主調(diào)函數(shù)模塊中還必須對該被調(diào)函數(shù)進(jìn)行類型說明,然后才能使用。
其實是這樣的,主調(diào)函數(shù)會繼續(xù)執(zhí)行被調(diào)函數(shù)之后的語句。
假設(shè)第一次執(zhí)行travel,判斷root!=NULL,則會第二次執(zhí)行travel,此處是travel(root-l);。
第二次執(zhí)行的travel語句肯定是要返回的,當(dāng)它返回之后,繼續(xù)執(zhí)行第一次travel中的print_s(root-data);。
然后再執(zhí)行第三次travel,此處是travel(root-r);。
每次travel函數(shù)在if條件滿足,或者下層travel(root-r);返回之后,才會返回。
同理繼續(xù)向下遞推。
在使用一個函數(shù)之前必須先對他進(jìn)行聲明:
//void B();聲明B函數(shù)的存在。void A(){B();//非法,程序執(zhí)行到此時并不知道B函數(shù)的存在。}void B(){}
或者
#include stdio.h
#include stdlib.h
#include math.h
int fa(int n)
{
int a;
for(a=2;a=sqrt(n*1.0),n%a!=0;a++);
if(asqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",n);
擴展資料
#include stdio.h
#include stdlib.h
#include math.h
int fa(int n)
{
int a;
for(a=2;a=sqrt(n*1.0),n%a!=0;a++);
if(asqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",n);
if(fa(n)==1)
printf("n");
else
printf("y");
system("pause");
exit(0);
}
參考資料:百度百科 - C語言函數(shù)
網(wǎng)站欄目:C語言函數(shù)里面調(diào)用自己,c語言函數(shù)自己調(diào)用函數(shù)本身
URL標(biāo)題:http://chinadenli.net/article5/dsgigii.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、標(biāo)簽優(yōu)化、用戶體驗、網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)、
聲明:本網(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)