解析C++函數(shù)的默認(rèn)參數(shù)和占位參數(shù)及較之C語(yǔ)言的拓展
可以將占位參數(shù)與默認(rèn)參數(shù)結(jié)合起來(lái)使用
意義:
為以后程序的擴(kuò)展留下線索
兼容C語(yǔ)言程序中可能出現(xiàn)的不規(guī)范寫法
//C++可以聲明占位符參數(shù),占位符參數(shù)一般用于程序擴(kuò)展和對(duì)C代碼的兼容
int func(int a, int b, int = 0)
{
return a + b;
}
void main()
{
//如果默認(rèn)參數(shù)和占位參數(shù)在一起,都能調(diào)用起來(lái)
func(1, 2);
func(1, 2, 3);
system("pause");
}
默認(rèn)參數(shù)對(duì)C的函數(shù)拓展
1.C++中可以在函數(shù)聲明時(shí)為參數(shù)提供一個(gè)默認(rèn)值,
當(dāng)函數(shù)調(diào)用時(shí)沒有指定這個(gè)參數(shù)的值,編譯器會(huì)自動(dòng)用默認(rèn)值代替
void myPrint(int x = 3)
{
printf("x:%d", x);
}
2.函數(shù)默認(rèn)參數(shù)的規(guī)則
只有參數(shù)列表后面部分的參數(shù)才可以提供默認(rèn)參數(shù)值。一旦在一個(gè)函數(shù)調(diào)用中開始使用默認(rèn)參數(shù)值,那么這個(gè)參數(shù)后的所有參數(shù)都必須使用默認(rèn)參數(shù)值:
//默認(rèn)參數(shù)
void printAB(int x = 3)
{
printf("x:%d\n", x);
}
//在默認(rèn)參數(shù)規(guī)則 ,如果默認(rèn)參數(shù)出現(xiàn),那么右邊的都必須有默認(rèn)參數(shù)
void printABC(int a, int b, int x = 3, int y=4, int z = 5)
{
printf("x:%d\n", x);
}
int main(int argc, char *argv[])
{
printAB(2);
printAB();
system("pause");
return 0;
}
默認(rèn)參數(shù)對(duì)C的函數(shù)拓展
1.C++中可以在函數(shù)聲明時(shí)為參數(shù)提供一個(gè)默認(rèn)值,當(dāng)函數(shù)調(diào)用時(shí)沒有指定這個(gè)參數(shù)的值,編譯器會(huì)自動(dòng)用默認(rèn)值代替:
void myPrint(int x = 3)
{
printf("x:%d", x);
}
2.函數(shù)默認(rèn)參數(shù)的規(guī)則:
只有參數(shù)列表后面部分的參數(shù)才可以提供默認(rèn)參數(shù)值。
一旦在一個(gè)函數(shù)調(diào)用中開始使用默認(rèn)參數(shù)值,那么這個(gè)參數(shù)后的所有參數(shù)都必須使用默認(rèn)參數(shù)值。
//默認(rèn)參數(shù)
void printAB(int x = 3)
{
printf("x:%d\n", x);
}
//在默認(rèn)參數(shù)規(guī)則 ,如果默認(rèn)參數(shù)出現(xiàn),那么右邊的都必須有默認(rèn)參數(shù)
void printABC(int a, int b, int x = 3, int y=4, int z = 5)
{
printf("x:%d\n", x);
}
int main(int argc, char *argv[])
{
printAB(2);
printAB();
system("pause");
return 0;
}
相關(guān)文章
VC基于ADO技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了VC基于ADO技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)的方法,較為詳細(xì)的分析了VC使用ADO操作數(shù)據(jù)庫(kù)的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
C++11?關(guān)鍵字?const?使用小結(jié)
const大致意思是“我承諾不改變這個(gè)值”。主要用于說(shuō)明接口,這樣在把變量傳入函數(shù)時(shí)就不必?fù)?dān)心變量會(huì)在函數(shù)內(nèi)被改變,本文給大家介紹C++11?關(guān)鍵字?const?使用小結(jié),感興趣的朋友一起看看吧2021-12-12
Java?C++?算法題解leetcode145商品折扣后最終價(jià)格單調(diào)棧
這篇文章主要介紹了Java?C++?算法題解leetcode145商品折扣后最終價(jià)格單調(diào)棧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
C++實(shí)現(xiàn)LeetCode(25.每k個(gè)一組翻轉(zhuǎn)鏈表)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(25.每k個(gè)一組翻轉(zhuǎn)鏈表),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C語(yǔ)言模擬實(shí)現(xiàn)memmove的示例代碼
memmove函數(shù)用于拷貝字節(jié),如果目標(biāo)區(qū)域和源區(qū)域有重疊的話,memmove能夠保證源串在被覆蓋之前將重疊區(qū)域的字節(jié)拷貝到目標(biāo)區(qū)域中,但復(fù)制后源內(nèi)容會(huì)被更改。本文主要介紹了C語(yǔ)言模擬實(shí)現(xiàn)memmove的示例代碼,需要的可以參考一下2022-12-12

