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

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

指针参数

函数的参数为指针

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
 }

数据结构框架学习

目录
相关文章
|
5月前
|
C++ 存储 Java
C++ 引用和指针:内存地址、创建方法及应用解析
'markdown'C++ 中的引用是现有变量的别名,用 `&` 创建。例如:`string &meal = food;`。指针通过 `&` 获取变量内存地址,用 `*` 创建。指针变量存储地址,如 `string *ptr = &food;`。引用不可为空且不可变,指针可为空且可变,适用于动态内存和复杂数据结构。两者在函数参数传递和效率提升方面各有优势。 ```
|
6月前
|
编译器 C++
C++ 解引用与函数基础:内存地址、调用方法及声明
C++ 中的解引用允许通过指针访问变量值。使用 `*` 运算符可解引用指针并修改原始变量。注意确保指针有效且不为空,以防止程序崩溃。函数是封装代码的单元,用于执行特定任务。理解函数的声明、定义、参数和返回值是关键。函数重载允许同一名称但不同参数列表的函数存在。关注公众号 `Let us Coding` 获取更多内容。
174 1
我应该使用按值调用还是按引用调用?
我应该使用按值调用还是按引用调用?
|
Python
python之函数的参数传递(引用传递和值传递),查看变量的内存地址的方法
python之函数的参数传递(引用传递和值传递),查看变量的内存地址的方法
|
C++
C++的引用 拷贝赋值和引用赋值
C++的引用 拷贝赋值和引用赋值
287 0
引用调用
引用调用
111 0
|
人工智能 Java
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
175 0
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
|
C语言
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
559 0
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
|
C++
C++ 用引用的方式向函数传递数组
C++ 用引用的方式向函数传递数组
146 0
C++ 用引用的方式向函数传递数组