您的位置:首页 > 编程语言 > C语言/C++

c++ 引用方式传递数组

2017-08-10 14:14 211 查看
值传递 (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)
);


定义

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)
)
{

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: