我們知道,在C/C++中,向一個(gè)函數(shù)傳遞數(shù)組時(shí),實(shí)際上傳送的是這個(gè)數(shù)組的首地址,也即是一個(gè)指針類型。所以,在函數(shù)中,我們沒(méi)有辦法知道這個(gè)傳遞進(jìn)來(lái)的數(shù)組的長(zhǎng)度到底為多長(zhǎng),一個(gè)普遍的方法就是再增加一個(gè)參數(shù),來(lái)記錄傳遞進(jìn)來(lái)的數(shù)組的長(zhǎng)度。
不過(guò)在C++中,使用模板機(jī)制,可以很好地解決這個(gè)問(wèn)題,如下面的代碼所示:
#include
using namespace std;
template
void array(T (¶m)[N])
{
cout << "N= " << N << endl;
}
int main()
{
int i[100];
double d[20];
char c[6];
array(i);
array(d);
array(c);
return 0;
}
不過(guò)在C++中,使用模板機(jī)制,可以很好地解決這個(gè)問(wèn)題,如下面的代碼所示:
#include
using namespace std;
template
void array(T (¶m)[N])
{
cout << "N= " << N << endl;
}
int main()
{
int i[100];
double d[20];
char c[6];
array(i);
array(d);
array(c);
return 0;
}