函数参数传递_使用引用避免拷贝

简介: 函数参数传递_使用引用避免拷贝

指针参数

函数的参数为指针

int test_demo(int *p)
{
    *p = 5;
    return 0;//改变指向,未改变地址
}
int main(int argc,char *argv[])//main函数
{
    int a= 1;
    int* p = &a;
    cout << &a << endl;
    test_demo(&a);
    cout << &a << endl;
    cout << a << endl;
    system("pause");//stop
 }

引用参数

地址未改变,改变值,使用引用能避免拷贝

int test_demo(int &p)
{
    int a = 5;
    p = a;
    return 0;
}
int main(int argc,char *argv[])//main函数
{
    int a= 1;
    int* p = &a;
    cout << &a << endl;
    test_demo(a);
    cout << &a << endl;
    cout << a << endl;
    system("pause");//stop
 }

数据结构框架学习

目录
相关文章
|
23天前
|
存储 Java C++
C++ 引用和指针:内存地址、创建方法及应用解析
C++中的引用是现有变量的别名,创建时需用`&`运算符,如`string &meal = food;`。指针存储变量的内存地址,使用`*`创建,如`string* ptr = &food;`。引用必须初始化且不可为空,而指针可初始化为空。引用在函数参数传递和提高效率时有用,指针适用于动态内存分配和复杂数据结构操作。选择使用取决于具体需求。
38 9
|
22天前
|
编译器 C++
C++ 解引用与函数基础:内存地址、调用方法及声明
C++ 中的解引用允许通过指针访问变量值。使用 `*` 运算符可解引用指针并修改原始变量。注意确保指针有效且不为空,以防止程序崩溃。函数是封装代码的单元,用于执行特定任务。理解函数的声明、定义、参数和返回值是关键。函数重载允许同一名称但不同参数列表的函数存在。关注公众号 `Let us Coding` 获取更多内容。
136 1
|
11月前
我应该使用按值调用还是按引用调用?
我应该使用按值调用还是按引用调用?
|
7月前
|
Python
python之函数的参数传递(引用传递和值传递),查看变量的内存地址的方法
python之函数的参数传递(引用传递和值传递),查看变量的内存地址的方法
|
10月前
|
C++
C++的引用 拷贝赋值和引用赋值
C++的引用 拷贝赋值和引用赋值
166 0
引用调用
引用调用
93 0
|
编译器 C++
C++关于参数是对象时要调用拷贝构造函数进行传参的问题探讨
C++关于参数是对象时要调用拷贝构造函数进行传参的问题探讨
231 0
|
人工智能 Java
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
146 0
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
|
C++
C++ 用引用的方式向函数传递数组
C++ 用引用的方式向函数传递数组
124 0
C++ 用引用的方式向函数传递数组
|
Java 编译器
方法引用的那些事儿
一句话介绍: > **方法引用**(**_Method Reference_**)是在 Lambda 表达式的基础上引申出来的一个功能。 先不铺展概念,从一个示例开始说起。 # 一、小示例 ```java List list = Arrays.asList(1, 2, 3); list.forEach(num -> System.out.println(num));
411 0