c++ 引用方式传递数组
2017-08-10 14:14
211 查看
值传递 (pass by value),指针传递(pass by pointer),当发生函数调用时,需要给形参分配存储单元、当传递是对象时,要调用拷贝构造函数。而且指针最后析构时,要处理内存释放问题。
引用传递(pass by refenrence),在内存中没有产生形参。效率大大提高!也不用处理指针的析构问题。
通过以上分析,我们设计程序时应该尽量使用引用,少利用指针。
头文件声明
定义
调用
结果
引用传递(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
相关文章推荐
- C#调用c++的dll,结构体数组作为引用参数的传递方式
- c++传递数组大小的方式
- C++的引用与const指针的关系以及各种传递方式
- 第二周 项目一 C/C++语言中函数参数传递的三种方式(三):.引用传递
- C++ 参数传递方式:值传递,引用传递,指针传递
- java及C++中传值传递、引用传递和指针方式的理解
- C++ 数组引用传递与指针传递
- C++函数参数和返回值三种传递方式:值传递、指针传递和引用传递(着重理解)
- C++字符串变量作为函数形参传递(引用方式)
- 第二周项目1 C/C++语言中的函数参数传递的三种方式--引用作形参
- android JNI java与C++传递String数组(引用类型)
- C++的异常对象按引用方式被传递
- C++函数参数和返回值三种传递方式:值传递、指针传递和引用传递(着重理解)
- C++参数传递,数组引用传递,保护数组退化为指针
- c++中参数传递的三种方式,以及用法。传值,传址,传引用
- c语言传递数组给函数的三种方式(注意均为引用传递)
- C++中数组名、指针的引用传递
- C++的引用与const指针的关系以及各种传递方式
- C/C++中参数传递有两种方式,传值或传地址(传引用)
- C++的引用与const指针的关系以及各种传递方式