值传递 (pass by value),指针传递(pass by pointer),当发生函数调用时,需要给形参分配存储单元、当传递是对象时,要调用拷贝构造函数。而且指针最后析构时,要处理内存释放问题。
引用传递(pass by refenrence),在内存中没有产生形参。效率大大提高!也不用处理指针的析构问题。
通过以上分析,我们设计程序时应该尽量使用引用,少利用指针。
头文件声明
private: Ui::MainWindow *ui; void ReadArray(const char* array_test,int size); templatevoid ReadArray2(T (&array_test)[N]);
定义
void MainWindow::ReadArray(const char *array_test,int size){ for(int i=0;ivoid MainWindow::ReadArray2(T (&array_test)[N]){ for(int i=0;i
调用
char array_test[4]={ 'a','b','c','d'}; qDebug()<<"sizeof"<
结果
sizeof 4ReadArray aReadArray bReadArray cReadArray dReadArray2 aReadArray2 bReadArray2 cReadArray2 d