C++中通過模板向函數(shù)傳遞數(shù)組長度

字號:

我們知道,在C/C++中,向一個函數(shù)傳遞數(shù)組時,實(shí)際上傳送的是這個數(shù)組的首地址,也即是一個指針類型。所以,在函數(shù)中,我們沒有辦法知道這個傳遞進(jìn)來的數(shù)組的長度到底為多長,一個普遍的方法就是再增加一個參數(shù),來記錄傳遞進(jìn)來的數(shù)組的長度。
    不過在C++中,使用模板機(jī)制,可以很好地解決這個問題,如下面的代碼所示:
    #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;
    }