zoukankan      html  css  js  c++  java
  • C/C++ 传值,传引用,传地址

    1,传值,当把值赋给函数形参时,是赋值的副本,在函数里做的任何改变都不会影响实参的值,

    eg:

    void swap(int a,int b)
    {
        int temp;
        temp = a;
        a = b;
        b = temp;     
    printf("a=%d,b=%d ",a,b); }

    int main(void)
    {
      int a = 7;
    int b = 9;
    swap(a,b);
        printf("a=%d,b=%d
    ",a,b);
    return 0;
    }

    output:
    a=9
    b=7

    a=7
    b=9

    2,传引用,是在函数形参的前面加上(&)符来表示函数传递的是值的引用,可以理解为是实参的一个别名,我们知道通过&a = b来给一个变量其别名,那么别名(a)的改变也会导致原来值(b)的改变

    void swap(int &a,int &b)
    {
        int temp;
        temp = a;
        a = b;
        b = temp;     
        printf("a=%d,b=%d
    ",a,b);      
    }
    
    int main(void)
    {
       int a = 7;
        int b = 9;
        swap(a,b);
    
        printf("a=%d,b=%d
    ",a,b);
        return 0;
    }
    
    output:
    a=9
    b=7
    
    a=9
    b=7

    3,传地址,就是把实参的地址传递给函数,是在函数形参的前面加上(*)符来表示函数传递的是地址,指针指向的地址一样,那么函数里改变指针的值,实参的值也会改变

    void swap(int *a,int *b)
    {
        int temp;
        temp = a;
        a = b;
        b = temp;     
        printf("a=%d,b=%d
    ",a,b);      
    }
    
    int main(void)
    {
       int a = 7;
        int b = 9;
        swap(&a,&b);
    
        printf("a=%d,b=%d
    ",a,b);
        return 0;
    }
    
    output:
    a=9
    b=7
    
    a=9
    b=7
  • 相关阅读:
    Vue响应式原理
    vue 与 react
    vuex
    受控组件( controlled component )与不受控制的组件( uncontrolled component )区别
    redux学习语录
    Flux
    MVC和MVVM 架构模式/设计思想
    immutable
    JS中一些兼容性问题
    @芥末的糖 ---------- node连接数据库两种方式mysql和moogoDB
  • 原文地址:https://www.cnblogs.com/ShowJoy/p/3613022.html
Copyright © 2011-2022 走看看