解析C++函數(shù)的默認(rèn)參數(shù)和占位參數(shù)及較之C語(yǔ)言的拓展
可以將占位參數(shù)與默認(rèn)參數(shù)結(jié)合起來(lái)使用
意義:
為以后程序的擴(kuò)展留下線索
兼容C語(yǔ)言程序中可能出現(xiàn)的不規(guī)范寫(xiě)法
//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í)沒(méi)有指定這個(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)用中開(kāi)始使用默認(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í)沒(méi)有指定這個(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)用中開(kāi)始使用默認(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)文章
利用C++實(shí)現(xiàn)簡(jiǎn)易的.ini配置文件解析器
這篇文章主要為大家詳細(xì)介紹了如何基于C++編寫(xiě)一個(gè)簡(jiǎn)易的.ini配置文件解析器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下2023-03-03C語(yǔ)言實(shí)現(xiàn)輸出平均成績(jī)最高學(xué)生的信息
這篇文章主要介紹利用C語(yǔ)言實(shí)現(xiàn)輸出平均成績(jī)最高學(xué)生的信息,文章舉例說(shuō)明并附有詳細(xì)代碼,需要的朋友可以參考一下2021-10-10C++實(shí)現(xiàn)LeetCode(22.生成括號(hào))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(22.生成括號(hào)),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07探討:C++實(shí)現(xiàn)鏈?zhǔn)蕉鏄?shù)(用非遞歸方式先序,中序,后序遍歷二叉樹(shù))
本篇文章是對(duì)用C++實(shí)現(xiàn)鏈?zhǔn)蕉鏄?shù)(用非遞歸方式先序,中序,后序遍歷二叉樹(shù))的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C語(yǔ)言中sscanf()函數(shù)的字符串格式化用法
這篇文章介紹的是C語(yǔ)言中sscanf()函數(shù),本文介紹了sscanf()函數(shù)的含義與用法,對(duì)大家日常使用C語(yǔ)言的sscanf()函數(shù)很有幫助,有需要的可以參考借鑒。2016-08-08使用C語(yǔ)言構(gòu)建基本的二叉樹(shù)數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了使用C語(yǔ)言使用C語(yǔ)言構(gòu)建基本的二叉樹(shù)數(shù)據(jù)結(jié)構(gòu),包括根據(jù)前序序列和中序序列構(gòu)建二叉樹(shù)的方法,需要的朋友可以參考下2015-08-08C語(yǔ)言關(guān)于include順序不同導(dǎo)致編譯結(jié)果不同的問(wèn)題
這篇文章主要介紹了在日常調(diào)試C語(yǔ)言中include的順序不同從而影響最后編譯結(jié)果不同的問(wèn)題,究其原因是寫(xiě)代碼的習(xí)慣所導(dǎo)致,下面跟小編一起來(lái)看看吧2022-04-04