zoukankan      html  css  js  c++  java
  • 传值和传地址调用

    1.原理

    传值调用:
    传值调用指方法在调用参数时,不是对原参数进行操作,而是创建参数的拷贝并对进行操作  
         
    指针调用:
    它是传值调用的一种特殊方式,将实参的地址传递给指针形参 ,此时实参和行参都指向同一个对象   
        
    引用调用:  
    以地址的方式传递参数,形参和实参都是同一个对象,形参相当于实参的别名 

    2.实例

     1 #include<iostream>
     2 using namespace std;
     3 
     4 //传值调用
     5 void exchange1(int x, int y){           
     6     int temp = x;                      
     7     x = y;
     8     y = temp;
     9     printf("x=%d,y=%d
    ", x, y);         
    10 }
    11 
    12 //指针调用
    13 
    14 void exchange2(int *x, int *y){             
    15     int temp = *x;                      
    16     *x = *y;
    17     *y = temp;
    18     printf("x=%d,y=%d
    ", *x, *y);         
    19 }
    20 
    21 //引用调用
    22 void exchange3(int &x, int &y){             
    23     int temp = x;                         
    24     x = y;
    25     y = temp;
    26     printf("x=%d,y=%d
    ", x, y);        
    27 }
    28  void main(){
    29     int a = 3;
    30     int b = 4;
    31     exchange1(a, b);                           //此时有前缀操作x=a,y=b,此时x=3,y=4,对a和b本身不操作
    32     printf("a=%d,b=%d
    ", a, b);         //a=3,b=4,      x=4,y=3
    33 
    34     exchange2(&a, &b);                      //此时有前缀操作x=&a,y=&b,此时x,y指向a,b的地址,即对a,b本身操作
    35     printf("a=%d,b=%d
    ", a, b);        // a=4,b=3,      x=4,y=3    exchange3(a, b);                     
    36 
    37     exchange3(a, b);                         //此时有前缀操作x=&a,y=&b,此时x,y指向a,b的地址,即对a,b本身操作
    38     printf("a=%d,b=%d
    ", a, b);       //a=4,b=3,        x=4,y=3 
    39 }
  • 相关阅读:
    jquery 使用on方法给元素绑定事件
    bootstrap 学习笔记(部分)
    ajax 调用 webService
    ASP.NET 上传文件
    SQL 表 数据备份
    在控制台程序中,添加config文件
    webConfig的使用
    C# 下载文件的心得
    JS将页面中表格,导出到Excel中(IE中)
    Yahoo 军规(部分)
  • 原文地址:https://www.cnblogs.com/jfl-xx/p/4868565.html
Copyright © 2011-2022 走看看