main()中的extem a;改為extem int a; extem用于將用于將其他源文件的函數(shù)或變量的作用范圍擴大到整個程序。在定義是不需要,只有在應用前用申明語句申明即可,如extern void print(int n);
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的沂南網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
你也沒說哪不懂,只能回答這么多了,希望對你有幫助
1、值傳遞,創(chuàng)建變量x和y,x的值等于a的值,y的值等于b的值
void Exchg1(int x, int y)?
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf(“x=%d,y=%d/n”,x,y)
}
void main()
{
int a=4,b=6;
Exchg1 (a,b) ;
printf(“a=%d,b=%d/n”,a,b)
}
2、地址傳遞,相當于建立了px和py兩個指向整型的指針,其值分別為a和b的地址
Exchg2(int *px, int *py)
{
int tmp=*px;
*px=*py;
*py=tmp;
print(“*px=%d,*py=%d/n”,*px,*py);
}
main()
{
int a=4;
int b=6;
Exchg2(a,b);
Print(“a=%d,b=%d/n”, a, b);
}
3、引用傳遞,x和y直接引用a和b,對a和b操作,相當于給a、b起了別名x、y
Exchg2(int x, int y)
{
int tmp=x;
x=y;
y=tmp;
print(“x=%d,y=%d/n”,x,y);
}
main()
{
int a=4;
int b=6;
Exchg2(a,b);
Print(“a=%d,b=%d/n”, a, b);
}
擴展資料:
printf用法:
printf()函數(shù)的調用格式為:printf("lt;格式化字符串gt;",lt;參量表gt;)。
其中格式化字符串包括兩部分內容:一部分是正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以"%"開始,后跟一個或幾個規(guī)定字符,用來確定輸出內容格式。
參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用","分開,且順序一一對應,否則將會出現(xiàn)意想不到的錯誤。
比如:
int a=1234;
printf("a=%d\n",a);
輸出結果為a=1234。
C語言中,函數(shù)調用的一般形式為:
函數(shù)名(實際參數(shù)表)
對無參函數(shù)調用時則無實際參數(shù)表。實際參數(shù)表中的參數(shù)可以是常數(shù)、變量或其它構造類型數(shù)據(jù)及表達式。各實參之間用逗號分隔。
#includestdio.h
int?fun(int?x,?int?y);?//?函數(shù)聲明,如果函數(shù)寫在被調用處之前,可以不用聲明
void?main()
{
int?a=1,?b=2,?c;
c?=?fun(a,?b);?//?函數(shù)的調用,調用自定義函數(shù)fun,其中a,b為實際參數(shù),傳遞給被調用函數(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ù)的調用。
這樣就出現(xiàn)了函數(shù)的嵌套調用。即在被調函數(shù)中又調用其它函數(shù)。這與其它語言的子程序嵌套的情形是類似的。其關系可表示如圖。
圖表示了兩層嵌套的情形。其執(zhí)行過程是:執(zhí)行main函數(shù)中調用a函數(shù)的語句時,即轉去執(zhí)行a函數(shù),在a函數(shù)中調用b 函數(shù)時,又轉去執(zhí)行b函數(shù),b函數(shù)執(zhí)行完畢返回a函數(shù)的斷點繼續(xù)執(zhí)行,a函數(shù)執(zhí)行完畢返回main函數(shù)的斷點繼續(xù)執(zhí)行。
參考資料:函數(shù)調用_百度百科
一個函數(shù)只能有一個返回值,指針可以返回多個,例如:
void aaa()
{
int *a,*c;
int a,c;
*a=a;*c=c;
a=b();c=b();
}
下面調用 *a和*c.
擴展資料:
在C語言中,指針的使用非常廣泛,因為使用指針往往可以生成更高效、更緊湊的代碼??偟膩碚f,使用指針有如下好處:
1、指針的使用使得不同區(qū)域的代碼可以輕易的共享內存數(shù)據(jù),這樣可以使程序更為快速高效;
2、C語言中一些復雜的數(shù)據(jù)結構往往需要使用指針來構建,如鏈表、二叉樹等;
3、C語言是傳值調用,而有些操作傳值調用是無法完成的,如通過被調函數(shù)修改調用函數(shù)的對象,但是這種操作可以由指針來完成,而且并不違背傳值調用。
參考資料來源:百度百科-指針 (編程語言中的一個對象)
C語言函數(shù)的運用及調用
1.當程序變得越來越復雜的時候,我們可以使用函數(shù)進行完成任務,并不再是進行編寫。
2.C語言本身就具有豐富的庫函數(shù):
目錄路徑函數(shù)
字符類型分類函數(shù)
內存管理函數(shù)
數(shù)學函數(shù)
進程控制函數(shù)
日期和時間函數(shù)
接口函數(shù)
輸入輸出函數(shù)
圖形函數(shù)
診斷函數(shù)
3.每一種函數(shù)都有它的作用,在需要使用時,直接進行調用就可以了。
4.函數(shù)分為有參和無參函數(shù)。
參數(shù)可以分為形參與實參。
形參在函數(shù)內,而實參在函數(shù)外。
形參直接使用,而實參在函數(shù)外調用。
5. 函數(shù)的值只能通過return語句返回主調函數(shù)。
6.在函數(shù)內有局部變量和全局變量兩種,局部變量在函數(shù)內使用,而全局變量可在函數(shù)中使用。
7.從變量作用域可以劃分全局,而在變量的生存期可以分為靜態(tài)與動態(tài)存儲方式。
固定的存儲空間與運行時分配的存儲空間方式還是有所不同的。
auto聲明自動變量,自動變量用關鍵字作存儲類別的聲明,在函數(shù)調用結束將會自動釋放這些存儲空間。
static可以聲明局部變量,在函數(shù)調用結束之后不消失而保留原值。
8.register可以聲明局部變量,在函數(shù)調用時為了提高效率,可以寄存在CPU的寄存器中。
extern可以聲明局部變量,擴展程序文件中的作用域。
分享名稱:c語言函數(shù)多變量的調用,c語言函數(shù)引用變量
當前鏈接:http://vcdvsql.cn/article48/heojhp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、企業(yè)建站、網(wǎng)站收錄、關鍵詞優(yōu)化、外貿建站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)