其實(shí)是這樣的,主調(diào)函數(shù)會繼續(xù)執(zhí)行被調(diào)函數(shù)之后的語句。
目前創(chuàng)新互聯(lián)已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、任縣網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
假設(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ù)是由用戶按需要寫的函數(shù)。這與庫函數(shù)相對應(yīng)的,庫函數(shù)是由c系統(tǒng)提供的函數(shù),已經(jīng)定義好了如printf
、
scanf
、
getchar
、putchar、gets、puts、strcat等函數(shù)均屬此類。
說白了,自定義函數(shù)是是自己寫的,想實(shí)現(xiàn)什么功能就寫什么,然后在用的時(shí)候和庫函數(shù)(系統(tǒng)定義的)的一樣調(diào)用就是了,相當(dāng)于自己增加了一個自己的庫函數(shù)。
可以的,前提是,在使用一個函數(shù)之前必須先對他進(jìn)行聲明:
//void B();聲明B函數(shù)的存在。
void A()
{
B();//非法,程序執(zhí)行到此時(shí)并不知道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);
擴(kuò)展資料
從函數(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)行類型說明,然后才能使用。
可以.C語言中,任何函數(shù)都可以直接或間接地被自己或其他函數(shù)調(diào)用,包括main函數(shù)(注意我說的是C,不是C++)
例如,典型的利用main遞歸實(shí)現(xiàn)逆序輸出
#include?stdio.h
int?main()
{
int?c;
if((c=getchar())?!=?EOF)?//EOF?用Ctrl+Z?或者?F6
{
main();
}
printf("%c",c);
return?0;
}
在使用一個函數(shù)之前必須先對他進(jìn)行聲明:
//void B();聲明B函數(shù)的存在。void A(){B();//非法,程序執(zhí)行到此時(shí)并不知道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);
擴(kuò)展資料
#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ù)