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

