传引用作为形参和返回值_节省参数拷贝的时间

基本的传引用概念

#include <bits/stdc++.h>
using namespace std;
//说出以下两个函数的区别
int& whatf(int &a,int &b) //如果不希望函数执行过程中 某变量被修改 用const限定
{
    a=3;b=2;
    return a;
}
int whath(int a,int b)
{
    a=3;b=2;
    return a;
}

int main()
{
    int a,b;
    whatf(a,b)++;
    cout<<a<<"  "<<b<<endl;
    //4   2
    return 0;
}

  传引用作为形参和返回值_节省参数拷贝的时间

//传引用和传值的区别
// 效率区别 语法区别
#include <bits/stdc++.h>
using namespace std;
//传引用的好处: 减少临时变量拷贝时的时间消耗
///把引用作为      返回值 和 形参
//返回值 1创建临时变量  2结果拷贝到临时变量 3...
//返回引用  直接得到结果   (但前提是函数知道某外部变量)
//返回的引用可以是:全局变量、传引用的形参
//传引用的载体必须是在函数结束后仍然存在的
//绝对不能传局部变量的引用 函数结束后就没了,,
int a,b,c;
int& wo()       //他是一个变量,有名字、有内存,可进行变量能做的所有运算
{
    b=2;
    return b;
}
int wi()        //他只是是一个值 只能作为con st 常量用
{
    a=2;
    return a;
}
int main()
{
    wo()++;//b=3
    wo()=8;//b=8;
    cout<<b<<endl;
    //wi()++;   //传值返回不能自加
    //wi()=2;   //不能作为左值
    wi();
    cout<<a<<endl;
    return 0;
}

  

时间: 2024-10-12 07:32:11

传引用作为形参和返回值_节省参数拷贝的时间的相关文章

用ajaxFileUpLoad上传文件不能正确取得返回值的问题

刚开始没有觉得ajax请求的dataType参数的重要性,用了ajaxFileUpLoad插件后,如果页面代码如下: fileElementId : ['imageToUpload'], url : 'url', dataType : 'json', 返回类型为json数据,那么后台处理上传后,必须将返回值封装成json格式的数据返回给前台页面. 后台封装如下: return "{\"result\":" + "\"OK\"}"

指针作为形参和返回值的区别

关于指作为针形参与返回值的常见问题 1.返回栈中局部变量的地址 #include <stdio.h> int *fun(){ int a = 10; // a为当前方法栈中的局部变量,结束即释放 return &a; // 所以传递出去的会是一个无效(非法)地址 } int main(int argc, char const *argv[]) { int *a = NULL; a = fun(); *a = 100; // error,操作非法内存 printf("a = %

python--函数的返回值、函数参数的使用、名称空间与作用域、函数嵌套、函数对象

今天学习内容有函数的返回值.函数参数的使用.名称空间与作用域.函数嵌套. 下来我们一一查看. 函数的返回值 看几个栗子: def func(x): return x**2 y=func(10) print(y) def foo(): return None res=foo() print(res) def foo(): return{'a':1} res=foo() print(res['a']) def foo(): return {'a':1},1,'a',[1,2] res=foo() p

C++ 中的形参与返回值

函数调用时,形参对象和返回对象均采用引用方式进行(临时对象作为中介),当一个对象作为参数(非引用)被函数调用时,该对象会通过复制构造函数获得一个临时对象,该临时对象以引用方式传递给函数,简言之,函数会被做以下处理: void foo(A x); A a foo( a); 处理后:void foo(A& x); A a A x(a): foo(x); 而返回值则根据不同的函数调用方式来进行不同程度的优化,如下面的调用方式,会直接将对象b作为引用传递给函数bar: A bar(); A b = ba

Java引用类型作为形参和返回值

一.什么是引用类型 在Java中引用类型包括三种:类.抽象类.接口. 二.引用类型作为形参使用 1.类作为形参 /** * 类作为形参,实际传递的是该类的对象 */ class Student { public void study() { System.out.println("Good Good Study, Day Day Up"); } } class StudentDemo { public void show(Student s) { s.study(); } } publ

10_面向对象(类,抽象类,接口的综合练习、形参和返回值、包的概述和讲解、修饰符、内部类)

1:形式参数和返回值的问题(理解)    (1)形式参数:        类名:需要该类的对象        抽象类名:需要该类的子类对象        接口名:需要该接口的实现类对象    (2)返回值类型:        类名:返回的是该类的对象        抽象类名:返回的是该类的子类对象        接口名:返回的是该接口的实现类的对象    (3)链式编程        对象.方法1().方法2().......方法n();                这种用法:其实在方法1()

Java_Day10(形参与返回值,包,修饰符,内部类)

1:形式参数和返回值的问题(理解)    (1)形式参数:        类名:需要该类的对象        抽象类名:需要该类的子类对象        接口名:需要该接口的实现类对象    (2)返回值类型:        类名:返回的是该类的对象        抽象类名:返回的是该类的子类对象        接口名:返回的是该接口的实现类的对象    (3)链式编程        对象.方法1().方法2().......方法n();                这种用法:其实在方法1()

Java_InvokeAll_又返回值_多个线程同时执行,取消超时线程

package com.demo.test4; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorSe

C++函数的返回值类型和参数类型

在C++中函数的定义为: type name(P1,P2) {stament}; 其中type为函数的返回值,name 为函数的标识符,P1,P2为函数的两个参数,该参数作用范围仅在该函数体内. 当一个函数不要返回任何值时,该函数为空函数,其类型为void,当该函数也没有参数时,也可以用void表示无参数,也可什么都不填,例如: void printmessage (void){  cout << "I'm a function!";} 定义了一个空函数,该函数无返回值,且