c++ 引用方式傳遞數組


值傳遞 (pass by value),指針傳遞(pass by pointer),當發生函數調用時,需要給形參分配存儲單元、當傳遞是對象時,要調用拷貝構造函數。而且指針最后析構時,要處理內存釋放問題。

引用傳遞(pass by refenrence),在內存中沒有產生形參。效率大大提高!也不用處理指針的析構問題。
通過以上分析,我們設計程序時應該盡量使用引用,少利用指針。

 

 頭文件聲明

 

private:
    Ui::MainWindow *ui;

    void ReadArray(const char* array_test,int size);
    template<class T,int N>
    void ReadArray2(T (&array_test)[N]);

 

定義

void MainWindow::ReadArray(const char *array_test,int size)
{

    for(int i=0;i<size;i++)
    {
        //qDebug()<<"ReadArray"<<*array;
       // array++;

        qDebug()<<"ReadArray"<<array_test[i];

    }

}
template<class T,int N>
void MainWindow::ReadArray2(T (&array_test)[N])
{

    for(int i=0;i<N;i++)
    {
        qDebug()<<"ReadArray2"<<array_test[i];

    }

}

調用

 char array_test[4]={'a','b','c','d'};
    qDebug()<<"sizeof"<<sizeof(array_test);

    ReadArray(array_test,4);

    ReadArray2(array_test);

結果

sizeof 4
ReadArray a
ReadArray b
ReadArray c
ReadArray d
ReadArray2 a
ReadArray2 b
ReadArray2 c
ReadArray2 d

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM