建设网站的一般过程,家乡网站建设,自己做企业网站,seo网站管理以值作为参数或者返回值类型#xff0c;在传参和返回期间#xff0c;函数不会直接传递实参或者将变量本身直接返回#xff0c;而是传递实参或者返回变量的一份临时的拷贝#xff0c;因此用值作为参数或者返回值类型#xff0c;效率是非常低下的#xff0c;尤其是当参数或… 以值作为参数或者返回值类型在传参和返回期间函数不会直接传递实参或者将变量本身直接返回而是传递实参或者返回变量的一份临时的拷贝因此用值作为参数或者返回值类型效率是非常低下的尤其是当参数或者返回值类型非常大时效率就更低。#include time.h
struct A{ int a[10000]; };
void TestFunc1(A a){}
void TestFunc2(A a){}
void TestRefAndValue()
{A a;// 以值作为函数参数size_t begin1 clock();for (size_t i 0; i 10000; i)TestFunc1(a);size_t end1 clock();// 以引用作为函数参数size_t begin2 clock();for (size_t i 0; i 10000; i)TestFunc2(a);size_t end2 clock();
// 分别计算两个函数运行结束后的时间cout TestFunc1(A)-time: end1 - begin1 endl;//7cout TestFunc2(A)-time: end2 - begin2 endl;//00是因为单位是毫秒可能比毫秒快
}int main()
{TestRefAndValue();return 0;}
值和引用的作为返回值类型的性能比较
#include time.h
struct A{ int a[10000]; };
A a;
// 值返回
A TestFunc1() { return a;}
// 引用返回
A TestFunc2(){ return a;}
void TestReturnByRefOrValue()
{// 以值作为函数的返回值类型size_t begin1 clock();for (size_t i 0; i 100000; i)TestFunc1();size_t end1 clock();// 以引用作为函数的返回值类型size_t begin2 clock();for (size_t i 0; i 100000; i)TestFunc2();size_t end2 clock();// 计算两个函数运算完成之后的时间cout TestFunc1 time: end1 - begin1 endl;//152cout TestFunc2 time: end2 - begin2 endl;//0
}int main()
{TestReturnByRefOrValue();return 0;
} 通过上述代码的比较发现传值和指针在作为传参以及返回值类型上效率相差很大。