實參可以是常量、變量、表達式、函數(shù)等任意類型,形參只能是變量,在被定義的函數(shù)中,必須指定形參的類型。
創(chuàng)新互聯(lián)公司專注于金華企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),購物商城網(wǎng)站建設(shè)。金華網(wǎng)站建設(shè)公司,為金華等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
形式參數(shù)(形參):定義函數(shù)名和函數(shù)體時需要用的參數(shù),目的是用來接收調(diào)用該函數(shù)時傳遞的參數(shù)。
實際參數(shù)(實參):傳遞給被調(diào)用函數(shù)的值。
通俗的來講,形參就像物理計算中的公式中的符號,比如Ω,A,V等,而實參就是在計算中的實際的數(shù)值。調(diào)用過程就是實現(xiàn)形參與實參的結(jié)合,把實參的值通過調(diào)用傳遞給形參,相當于把具體的值代入公式進行計算。
擴展資料:
兩者的區(qū)別:
區(qū)別1
形參只能是變量,在被定義的函數(shù)中,必須指定形參的類型。
實參可以是常量、變量、表達式、函數(shù)等,
區(qū)別2
形參:沒有確定的值
實參:無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應(yīng)預(yù)先用賦值,輸入等辦法使實參獲得確定值。
區(qū)別3
形參變量在未出現(xiàn)函數(shù)調(diào)用時,并不占用內(nèi)存,只在調(diào)用時才占用。調(diào)用結(jié)束后,將釋放內(nèi)存。
開辟內(nèi)存存儲數(shù)據(jù)
要交換任意變量 那么就只能通過指針來進行
不考慮變量類型,而直接交換值。
需要三個參數(shù),兩個變量地址,以及變量所占的空間。
賦值可以用memcpy
代碼如下:
void?super_swap(void?*?a,?void?*b,?int?size)
{
void?*p?=?malloc(size);
memcpy(p,?a,?size);
memcpy(a,b,size);
memcpy(b,p,size);
free(p);
}
百度上找的答案,這個問題挺難的,至少我不會,,,學(xué)習c語言好今年了。
#includestdio.h
#define?SCANF(m)?scanf("%"#m"%"#m,m##a,m##b)
#define?PRINTF(m)?printf("交換結(jié)果:%"#m"\t%"#m"\n",m##a,m##b)
void?swap(char,void*,void*,void*);
int?main()
{
unsigned?ua,ub,ut;
int?da,db,dt;
float?fa,fb,ft;
double?lfa,lfb,lft;
char?ca,cb,ct,ch;
printf("數(shù)據(jù)類型:");
printf("u-無符號整型\ti-有符號整型\tf-單精度實型\td-雙精度實型\tc-字符型\n");
printf("請選擇\n");
scanf("%c",ch);
fflush(stdin);
printf("請輸入兩個指定類型的數(shù)據(jù):");
switch(ch)
{
case?'u':SCANF(u);swap(ch,ua,ub,ut);PRINTF(u);break;
case?'i':SCANF(d);swap(ch,da,db,dt);PRINTF(d);break;
case?'f':SCANF(f);swap(ch,fa,fb,ft);PRINTF(f);break;
case?'d':SCANF(lf);swap(ch,lfa,lfb,lft);PRINTF(lf);break;
case?'c':SCANF(c);swap(ch,ca,cb,ct);PRINTF(c);break;
}
}
void?swap(char?c,void?*p1,void?*p2,void?*p3)
{
switch(c){
case?'u':*(unsigned?*)p3=*(unsigned?*)p1;*(unsigned?*)p1=*(unsigned?*)p2;*(unsigned?*)p2=*(unsigned?*)p3;break;
case?'i':*(int?*)p3=*(int?*)p1;*(int?*)p1=*(int?*)p2;*(int?*)p2=*(int?*)p3;break;
case?'f':*(float?*)p3=*(float?*)p1;*(float?*)p1=*(float?*)p2;*(float?*)p2=*(float?*)p3;break;
case?'d':*(double?*)p3=*(double?*)p1;*(double?*)p1=*(double?*)p2;*(double?*)p2=*(double?*)p3;break;
default?:*(char?*)p3=*(char?*)p1;*(char?*)p1=*(char?*)p2;*(char?*)p2=*(char?*)p3;break;
}
}
本文標題:c語言任意類型變量函數(shù) c語言任意類型變量函數(shù)是什么
標題鏈接:http://m.newbst.com/article24/dopjeje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、品牌網(wǎng)站制作、商城網(wǎng)站、Google、靜態(tài)網(wǎng)站、用戶體驗
聲明:本網(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)