C語(yǔ)言整型、實(shí)型數(shù)據(jù),如果以變量名稱作為參數(shù),系統(tǒng)規(guī)定的處理方式就是:實(shí)際參數(shù)僅決定形式參數(shù)的初值,形式參數(shù)在子函數(shù)內(nèi)部的操作與實(shí)際參數(shù)無(wú)關(guān)。
成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營(yíng)銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開(kāi)源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺(jué)化效果。
如果需要子函數(shù)內(nèi)的操作能夠影響實(shí)際參數(shù)的內(nèi)容,需要使用實(shí)際參數(shù)變量的地址做參數(shù),使得子函數(shù)內(nèi)部對(duì)于形式參數(shù)的操作能夠直接在實(shí)際參數(shù)的存儲(chǔ)空間內(nèi)進(jìn)行。你的子函數(shù)定義應(yīng)該修改為:
int
max(int
*a,int
*b)
{
int
c;
if(*a*b)
{
c=*a;
*a=*b;
*b=c;
}
}
函數(shù)的調(diào)用格式應(yīng)該為:
max(m,i);
使用實(shí)參地址作為參數(shù),與子函數(shù)指針類型的形式參數(shù)對(duì)應(yīng)。
達(dá)到在子函數(shù)中通過(guò)實(shí)際參數(shù)地址,直接操作實(shí)際參數(shù)變量?jī)?nèi)容的目的。
C語(yǔ)言中定義了va_list, va_start( ), va_arg( ), va_end( ) 這樣一組宏來(lái)處理可變參數(shù)問(wèn)題。
可以參考printf的聲明,創(chuàng)建自己的實(shí)現(xiàn)函數(shù)。示例:
#includestdio.h
#includestdarg.h
void?va_fun(int?start,...)
{
va_list?arg_ptr;
int?nArgValue?=?start;
int?nArgCount?=?1;
va_start(arg_ptr,start);
while(nArgValue?!=?-1)
{
printf("arg?%d?is:%d/n",nArgCount,nArgValue);
nArgValue=va_arg(arg_ptr,int);
++nArgCount;?
}
return;?
}
main()
{
va_fun(5,1,7,-1);
printf("................/n");
va_fun(2,4,-1);
printf("................/n");
va_fun(-1);
printf("................/n");
//va_fun();?可變參數(shù)函數(shù)最少要有一個(gè)參數(shù)。
}
親,const char* arg已經(jīng)讓這個(gè)arg字符串的內(nèi)容無(wú)法改變了(arg指向的地址空間內(nèi)存的內(nèi)容不允許改變)。
比如你試圖arg[0]='H'; 編譯就會(huì)失敗。因?yàn)閏onst char *的意義是字串內(nèi)容無(wú)法改變。但是,s如果是另一個(gè)字符串,則arg=s可以編譯通過(guò)。即,讓arg指向另一塊不同的地址(另一個(gè)不同的字符串)。
如果我沒(méi)有猜錯(cuò),你和char * const arg混了。char * const arg的意思是,字串的內(nèi)容可以改變(arg指向的地址上存的內(nèi)容可以改變),但是,arg指向的地址不能變。假設(shè)s是另一個(gè)string,arg=s就無(wú)法編譯通過(guò)。
const char* const arg的意思就是,arg指向的地址不能換,arg指向的地址里面的內(nèi)容不能改,就是上面兩個(gè)提到的不可寫(xiě)特性的統(tǒng)合,即arg=s和arg[0]='H'都無(wú)法編譯通過(guò)
文章題目:c語(yǔ)言函數(shù)的參數(shù)不變 c++不定參數(shù)函數(shù)
新聞來(lái)源:http://m.kartarina.com/article10/dodsego.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、外貿(mào)網(wǎng)站建設(shè)、App設(shè)計(jì)、服務(wù)器托管、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)