• 值传递、指针传递、引用传递


    指针和引用

    指针:是一个变量,存储着一个地址(占4个字节),这个地址指向一块内存。
    引用:是一个已有变量的别名,所以引用在创建的时候就需要初始化。

    #include <iostream>
    using namespace std;
    
    typedef struct{
        int a;
        int b;
        int c;
        void (*function1)(int);
        void (*function2)(int *);
        void (*function3)(int &);
    }param;
    
    void function1(int _a)
    {
        _a += 10;
    }
    void function2(int *b)
    {
        *b += 10;
    }
    void function3(int &c)
    {
        c += 10;
    }
    
    int main(void)
    {
        param param1 = {10,20,30,function1,function2,function3};
        
        //值传递,形参是实参在栈中的拷贝,形参是实参的副本。从被调用函数来看,
        //值传递是单向的(实参—>形参),即参数值只能传入。(效率低下)
        param1.function1(param1.a); 
    
        //指针传递,形参是指向实参地址的指针,改变形参指向地址的值同样也会改变实参的值。
        param1.function2(&param1.b);
    
        //引用传递,形参相当于实参的“别名”,形参在栈。中开辟了空间,保存的是实参的地址。
        //被调函数对形参进行的任何操作都被认为是间接寻址。所以会影响实参的值
        param1.function3(param1.c); 
    
        cout << "param1.a: " << param1.a << endl;
        cout << "param2.b: " << param1.b << endl;
        cout << "param3.c: " << param1.c << endl; 
    
        system("pause");
        return 0;
    }
    
  • 相关阅读:
    第三方登录原理
    django-rest-framework之 json web token方式完成用户认证
    HTTP Basic Authentication认证
    python 创建虚拟环境
    scrapy pipeline
    beautifulsoup 安装
    scrapy 安装
    Jmeter 安装
    css中的行高line-height
    html块级元素与行内元素
  • 原文地址:https://www.cnblogs.com/xiongyungang/p/10715350.html
Copyright © 2020-2023  润新知