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

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

指针参数

函数的参数为指针

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` 获取更多内容。
177 1
我应该使用按值调用还是按引用调用?
我应该使用按值调用还是按引用调用?
|
C++
c++引用作为函数参数和函数返回值
c++引用作为函数参数和函数返回值
73 0
|
C++
C++的引用 拷贝赋值和引用赋值
C++的引用 拷贝赋值和引用赋值
290 0
引用调用
引用调用
112 0
|
人工智能 Java
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
176 0
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
|
编译器 C++
C++关于参数是对象时要调用拷贝构造函数进行传参的问题探讨
C++关于参数是对象时要调用拷贝构造函数进行传参的问题探讨
268 0
|
C++
C++ 用引用的方式向函数传递数组
C++ 用引用的方式向函数传递数组
147 0
C++ 用引用的方式向函数传递数组