c語言沒有重載,c++有。
創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、新?lián)峋W(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為新?lián)岬雀鞔蟪鞘刑峁┚W(wǎng)站開發(fā)制作服務(wù)。
可以使用字符串傳遞原值和目標(biāo)值,增加類型定義參數(shù)。
int template(char *dst, char *src,int type)
{
int i_aa=0;
double d_bb=0.0L;
switch(type){
case 0: //整型
i_aa = atof(src);
i_aa = i_aa * 10;
sprintf(dst,"%d",i_aa);
break;
case 1: //浮點(diǎn)型
d_bb = atof(src);
d_bb = d_bb - 0.05;
sprintf(dst,"%.2lf",d_bb);
break;
case 2: //字符串
sprintf(dst,"this is %s",src);
break;
default:
return src;
}
return dst;
}
函數(shù)外再處理dst了。注意長度定義。
??在許多c語言初學(xué)者中編寫函數(shù)時,都喜歡將無參函數(shù)中的參數(shù)類型忽略。
??但是實(shí)際上 默認(rèn)的參數(shù)類型 不是無參 void ,而是接受 任意數(shù)量和類型的參數(shù) 。也就是說 int func() 和 int func(void) 是不一樣的。下面通過一個例子加深了解一下在C語言中函數(shù)的默認(rèn)參數(shù)類型:
??所以說,在使用c語言編寫無參函數(shù)時,一定要把 void 寫上去,不然會有安全隱患。
argc和argv是main函數(shù)的形式參數(shù)。這兩個形式參數(shù)的類型是系統(tǒng)規(guī)定的。如果main函數(shù)要帶參數(shù),就是這兩個類型的參數(shù);否則main函數(shù)就沒有參數(shù)。
堅持使用標(biāo)準(zhǔn)的意義在于:當(dāng)你把程序從一個編譯器移到另一個編譯器時,照樣能正常運(yùn)行。
由于是 int main( ..) 那么當(dāng)時 應(yīng)當(dāng)返回 int 但是return 2.3 ;也能運(yùn)行正確,這是因為編譯器自動轉(zhuǎn)換2.3為int,截斷后為return 2;??
如果寫為 return "abc";那么會報錯,??error C2440: “return”: 無法從“const char [4]”轉(zhuǎn)換為“int”。
變量名稱argc和argv是常規(guī)的名稱,當(dāng)然也可以換成其他名稱。那么,實(shí)際參數(shù)是如何傳遞給main函數(shù)的argc和argv的呢?我們知道,C程序在編譯和鏈接后,都生成一個可執(zhí)行文件。也可以在命令行下帶參數(shù)執(zhí)行,命令行執(zhí)行的形式為:可執(zhí)行文件名稱 參數(shù)1 參數(shù)2 ... ... 參數(shù)n??蓤?zhí)行文件名稱和參數(shù)、參數(shù)之間均使用空格隔開。
如果按照這種方法執(zhí)行,命令行字符串將作為實(shí)際參數(shù)傳遞給main函數(shù)。具體為:
(1) 可執(zhí)行文件名稱和所有參數(shù)的個數(shù)之和傳遞給argc;
(2) 可執(zhí)行文件名稱(包括路徑名稱)作為一個字符串,首地址被賦給argv[0],參數(shù)1也作為一個字符串,首地址被賦給argv[1],... ...依次類推。
字符串a(chǎn)rav[i](i=1,...argc-1)表式第 i 個程序參數(shù),標(biāo)準(zhǔn)C 要求argv[argc]是個null指針,但在有些舊時編譯器中卻不是這樣的,argv向量以及它所指向的字符串必須是可以修改的,并且他們的值在程序執(zhí)行期間不能被編譯器或操作系統(tǒng)所修改。如果編譯器并不允許大小寫混合的字符串 ,則存儲在argv中的字符串必須采用小寫形式。
1.給main函數(shù)傳遞參數(shù)只有一種方式,即main(int argc, char *argv[])。第一個參數(shù)必須int,第二個(如果有的話)必須是char**或char *argv[]。
2.argc代表傳入?yún)?shù)的個數(shù),argv是一個數(shù)組,每個元素都是一個char *。字符串a(chǎn)rav[i](i=1,...argc-1)表式第 i 個程序參數(shù),標(biāo)準(zhǔn)C 要求argv[argc]是個null指針。
3.main函數(shù)參數(shù)理論上支持“無數(shù)”個,且參數(shù)在進(jìn)程內(nèi)支持修改。
是函數(shù)參數(shù)的傳遞方式吧。c語言的話是:值傳遞和指針(地址)傳遞。c++的話除了c語言的兩種方式外還有引用傳遞。
一維數(shù)組的元素作為函數(shù)實(shí)參,與同類型的簡單變量作為實(shí)參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實(shí)參
數(shù)組名代表著整個數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實(shí)參,傳遞的是整個數(shù)組,即形參數(shù)組和實(shí)參數(shù)組完全相同,是存放在同一存儲空間的同一個數(shù)組。這樣形參數(shù)組
修改時,實(shí)參數(shù)組也同時被修改了。形參數(shù)組的元素個數(shù)可以省略。
#includestdio.h
//數(shù)組作為函數(shù)參數(shù),可以省略元素個數(shù)
//數(shù)組作為函數(shù)參數(shù),傳遞是整個數(shù)組的地址,修改了函數(shù)形參數(shù)組元素的值,會影響到外面的實(shí)參數(shù)組
void change(int array[])
{
printf("array ==%p\n",array);
array[0] = 100;
}
int main()
{
int ages[6] = {10,11,13,15,11,18};
printf("array ==%p\n",ages);
change(ages);
printf("%d\n",ages[0]);
return 0;
}
輸出結(jié)果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100
網(wǎng)站標(biāo)題:c語言函數(shù)傳入?yún)?shù)類型 c語言函數(shù)傳遞參數(shù)方式
路徑分享:http://chinadenli.net/article32/hpiopc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站設(shè)計公司、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)