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