一、什么是默認參數
C++中可以在函數聲明時為參數提供一個默認值,
當函數調用時沒有指定這個參數的值,編譯器會自動用默認值代替
二、默認參數規則
只有參數列表后面部分的參數才可以提供默認參數值
一旦在一個函數調用中開始使用默認參數值,那么這個參數后的所有參數都必須使用默認參數
#include <stdio.h>// 函數的默認參數:當函數調用沒有提供該參數的值,會使用默認的值
int mul(int a, int b = 10)
{return a * b;
}// 如果給函數一個參數賦了一個默認的值,那么這個參數后面的所有參數都必須要有默認值
int mul2(int a, int b = 5, int c = 6)
{return a*b*c;
}struct A
{unsigned int a:10;unsigned int b:10;unsigned int :10; //無名位域 占著 10 bit 空間 但是不用unsigned int c:2;
};// 如果一個函數的參數只有類型,沒有變量名,把這個參數叫做占位參數
// 函數的占位參數可以和默認參數一起使用
int mul3(int a, int b, int=0)
{return a * b;
}int main8_2()
{mul3(1,2,3);mul3(1,2);return 0;
}int main8_1()
{printf ("a * b = %d\n", mul(10));printf ("a * b = %d\n", mul(10, 20));printf ("a * b = %d\n", mul2(10, 20, 30));printf ("a * b = %d\n", mul2(10, 30));printf ("a * b = %d\n", mul2(10));return 0;
}