1、首先,一個(gè)函數(shù)要想調(diào)用,就必須有函數(shù)的聲明和定義。聲明就是指在程序編譯的時(shí)候告訴編譯器,這是個(gè)內(nèi)部函數(shù)。聲明方式為:函數(shù)類型+函數(shù)名+函數(shù)參數(shù),并且以分號(hào)結(jié)尾。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),延長企業(yè)網(wǎng)站建設(shè),延長品牌網(wǎng)站建設(shè),網(wǎng)站定制,延長網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,延長網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
2、函數(shù)的調(diào)用就在你需要用到它的地方調(diào)就可以了,并且將參數(shù)傳給它。
3、函數(shù)定義就是實(shí)現(xiàn)這個(gè)函數(shù)的功能。
希望對(duì)你有幫助!
要在主函數(shù)中調(diào)用其他函數(shù)就在主函數(shù)中直接寫出你的函數(shù)名(如果需要參數(shù)的話就傳入?yún)?shù)就可以了)看下面voidmain(){tr();//因?yàn)槟阕远x這個(gè)函數(shù)不需要參數(shù)所以直接調(diào)用就可以了}其他函數(shù)調(diào)用也一樣,一個(gè)函數(shù)可以調(diào)用另一個(gè)函數(shù)(不能調(diào)用主函數(shù))
可以的,前提是,在使用一個(gè)函數(shù)之前必須先對(duì)他進(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ù)。對(duì)于用戶自定義函數(shù), 不僅要在程序中定義函數(shù)本身, 而且在主調(diào)函數(shù)模塊中還必須對(duì)該被調(diào)函數(shù)進(jìn)行類型說明,然后才能使用。
函數(shù)是用戶與程序的接口,在定義一個(gè)函數(shù)前,首先要清楚以下三個(gè)問題。1) 函數(shù)的功能實(shí)現(xiàn)及算法選擇。算法選擇會(huì)在后續(xù)文章詳細(xì)講解,本節(jié)重點(diǎn)關(guān)注函數(shù)的功能實(shí)現(xiàn)。一般選取能體現(xiàn)函數(shù)功能的函數(shù)名,且見名知意,如求和函數(shù)的函數(shù)名可取為 add,求最大值的函數(shù)名可取為 max,排序函數(shù)可取名為 sort 等。2) 需要用戶傳給該函數(shù)哪些參數(shù)、什么類型,即函數(shù)參數(shù)。3) 函數(shù)執(zhí)行完后返回給調(diào)用者的參數(shù)及類型,即函數(shù)返回值類型。 函教定義格式 函數(shù)定義的一般格式為: 返回類型 函數(shù)名 (類型參數(shù)1,類型參數(shù)2,…) {函數(shù)體 }也可以不含參數(shù),不含參數(shù)時(shí),參數(shù)表中可寫關(guān)鍵字 void 或省略,為規(guī)范起見,教程中對(duì)沒有參數(shù)的函數(shù),參數(shù)表中統(tǒng)一寫 void。例如: 類型 函數(shù)名 () {函數(shù)體 }等價(jià)于: 類型 函數(shù)名 (void) //建議的書寫方式 {函數(shù)體 } 如果該函數(shù)沒有返回類型,則為 void 類型。例如: void add (int x,int y) {printf ("sum=%d\n", x+y); } 除了 void 類型外,在函數(shù)體中,均需要顯式使用 return 語句返回對(duì)應(yīng)的表達(dá)式的值。 函教返回值 函數(shù)的值是指調(diào)用函數(shù)結(jié)束時(shí),執(zhí)行函數(shù)體所得并返回給主調(diào)函數(shù)的值。 關(guān)于函數(shù)返回值說明如下。1) 帶返回值的函數(shù),其值一般使用 return 語句返回給調(diào)用者。其格式為: return 表達(dá)式;或者 return (表達(dá)式);例如: int add (int a, int b) {return (a + b); //return 后為表達(dá)式 } 函數(shù)可以含一個(gè)或多個(gè) return 語句,但每次調(diào)用時(shí)只能執(zhí)行其中一個(gè) return 語句。例如,求整數(shù)絕對(duì)值的函數(shù): int f (int n) //含多個(gè)return語句,但每次調(diào)用只執(zhí)行一個(gè) {if (n = 0)return n;elsereturn -n; }
以下答案都是來自譚浩強(qiáng)的《C程序設(shè)計(jì)》這本書很好懂,是大家公認(rèn)的C語言入門書籍!強(qiáng)烈建議去買一本或者下一本,我這有WORD版本的,要的話加我QQ我發(fā)給你:993437324
20.4.1 函數(shù)調(diào)用的一般形式
在程序中是通過對(duì)函數(shù)的調(diào)用來執(zhí)行函數(shù)體的,其過程與其它語言的子程序調(diào)用相似。
C語言中,函數(shù)調(diào)用的一般形式為:
函數(shù)名(實(shí)際參數(shù)表)
對(duì)無參函數(shù)調(diào)用時(shí)則無實(shí)際參數(shù)表。實(shí)際參數(shù)表中的參數(shù)可以是常數(shù),變量或其它構(gòu)造類型數(shù)據(jù)及表達(dá)式。各實(shí)參之間用逗號(hào)分隔。
20.4.2 函數(shù)調(diào)用的方式
在C語言中,可以用以下幾種方式調(diào)用函數(shù):
1. 函數(shù)表達(dá)式:函數(shù)作為表達(dá)式中的一項(xiàng)出現(xiàn)在表達(dá)式中,以函數(shù)返回值參與表達(dá)式的運(yùn)算。這種方式要求函數(shù)是有返回值的。例如:z=max(x,y)是一個(gè)賦值表達(dá)式,把max的返回值賦予變量z。
2. 函數(shù)語句:函數(shù)調(diào)用的一般形式加上分號(hào)即構(gòu)成函數(shù)語句。例如: printf ("%d",a);scanf ("%d",b);都是以函數(shù)語句的方式調(diào)用函數(shù)。
3. 函數(shù)實(shí)參:函數(shù)作為另一個(gè)函數(shù)調(diào)用的實(shí)際參數(shù)出現(xiàn)。這種情況是把該函數(shù)的返回值作為實(shí)參進(jìn)行傳送,因此要求該函數(shù)必須是有返回值的。例如: printf("%d",max(x,y)); 即是把max調(diào)用的返回值又作為printf函數(shù)的實(shí)參來使用的。在函數(shù)調(diào)用中還應(yīng)該注意的一個(gè)問題是求值順序的問題。所謂求值順序是指對(duì)實(shí)參表中各量是自左至右使用呢,還是自右至左使用。對(duì)此,各系統(tǒng)的規(guī)定不一定相同。介紹printf 函數(shù)時(shí)已提到過,這里從函數(shù)調(diào)用的角度再強(qiáng)調(diào)一下。
【例8.3】
main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
}
如按照從右至左的順序求值。運(yùn)行結(jié)果應(yīng)為:
8
7
7
8
如對(duì)printf語句中的++i,--i,i++,i--從左至右求值,結(jié)果應(yīng)為:
9
8
8
9
應(yīng)特別注意的是,無論是從左至右求值, 還是自右至左求值,其輸出順序都是不變的, 即輸出順序總是和實(shí)參表中實(shí)參的順序相同。由于Turbo C現(xiàn)定是自右至左求值,所以結(jié)果為8,7,7,8。上述問題如還不理解,上機(jī)一試就明白了。
20.4.3 被調(diào)用函數(shù)的聲明和函數(shù)原型
在主調(diào)函數(shù)中調(diào)用某函數(shù)之前應(yīng)對(duì)該被調(diào)函數(shù)進(jìn)行說明(聲明),這與使用變量之前要先進(jìn)行變量說明是一樣的。在主調(diào)函數(shù)中對(duì)被調(diào)函數(shù)作說明的目的是使編譯系統(tǒng)知道被調(diào)函數(shù)返回值的類型,以便在主調(diào)函數(shù)中按此種類型對(duì)返回值作相應(yīng)的處理。
其一般形式為:
類型說明符 被調(diào)函數(shù)名(類型 形參,類型 形參…);
或?yàn)椋?/p>
類型說明符 被調(diào)函數(shù)名(類型,類型…);
括號(hào)內(nèi)給出了形參的類型和形參名,或只給出形參類型。這便于編譯系統(tǒng)進(jìn)行檢錯(cuò),以防止可能出現(xiàn)的錯(cuò)誤。
例8.1 main函數(shù)中對(duì)max函數(shù)的說明為:
int max(int a,int b);
或?qū)憺?
int max(int,int);
C語言中又規(guī)定在以下幾種情況時(shí)可以省去主調(diào)函數(shù)中對(duì)被調(diào)函數(shù)的函數(shù)說明。
1) 如果被調(diào)函數(shù)的返回值是整型或字符型時(shí),可以不對(duì)被調(diào)函數(shù)作說明,而直接調(diào)用。這時(shí)系統(tǒng)將自動(dòng)對(duì)被調(diào)函數(shù)返回值按整型處理。例8.2的主函數(shù)中未對(duì)函數(shù)s作說明而直接調(diào)用即屬此種情形。
2) 當(dāng)被調(diào)函數(shù)的函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前時(shí),在主調(diào)函數(shù)中也可以不對(duì)被調(diào)函數(shù)再作說明而直接調(diào)用。例如例8.1中,函數(shù)max的定義放在main 函數(shù)之前,因此可在main函數(shù)中省去對(duì)max函數(shù)的函數(shù)說明int max(int a,int b)。
3) 如在所有函數(shù)定義之前,在函數(shù)外預(yù)先說明了各個(gè)函數(shù)的類型,則在以后的各主調(diào)函數(shù)中,可不再對(duì)被調(diào)函數(shù)作說明。例如:
char str(int a);
float f(float b);
main()
{
……
}
char str(int a)
{
……
}
float f(float b)
{
……
}
其中第一,二行對(duì)str函數(shù)和f函數(shù)預(yù)先作了說明。因此在以后各函數(shù)中無須對(duì)str和f函數(shù)再作說明就可直接調(diào)用。
4) 對(duì)庫函數(shù)的調(diào)用不需要再作說明,但必須把該函數(shù)的頭文件用include命令包含在源文件前部。
小伙伴,沒看懂你的意思,創(chuàng)建一個(gè)已經(jīng)輸入數(shù)據(jù)的函數(shù)?代碼經(jīng)過編譯連接之后,就成二進(jìn)制了,也就是固態(tài)形式,不可能再修改一個(gè)函數(shù)的功能了。
如果要是預(yù)留一個(gè)數(shù)據(jù)的值倒是可以的:
不直接對(duì)原來參數(shù)進(jìn)行修改,用const,進(jìn)行值傳遞,在函數(shù)中運(yùn)算完成后return這個(gè)結(jié)果,在主????????函數(shù)中用變量接收。
對(duì)原來值直接操作,參數(shù)傳遞一個(gè)指針,可以再使用前對(duì)這個(gè)值進(jìn)行備份,或者在函數(shù)中定義一個(gè)變量對(duì)這個(gè)變量用參數(shù)進(jìn)行賦值,return這個(gè)備份參數(shù)。
還有很多方法,這兩種只是最簡單的。