zoukankan      html  css  js  c++  java
  • C语言的传值与传址调用

    传值调用并不能改变两个变量的值,而传址能。

    为什么,因为,传值调用,仅仅是在函数内,调换参数的值。

    而地址所指向的值,改变的不仅仅是函数内,函数外也改变。

    请看代码:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 void swap1(int x,int y)
     5 {
     6   int temp;
     7   
     8   temp=x;
     9   x=y;
    10   y=temp;   
    11   printf("传值函数内的输出 %d %d \n",x,y);
    12 }
    13 
    14 void swap2(int *x,int *y)
    15 {
    16   int temp;
    17   temp = *x;
    18   *= *y;
    19   *y=temp;   
    20   printf("传址函数内的输出 %d %d \n",*x,*y);
    21 }
    22 
    23 int main(int argc, char *argv[])
    24 {
    25   int x = 10;
    26   int y = 0;
    27   
    28   printf("x y \n");
    29   printf("初值 %d %d \n",x,y);
    30   //传值子程序调用(交换xy) 
    31   swap1(x,y);
    32   printf("传值函数外调用 %d %d \n",x,y);
    33   
    34   //传地址字程序调用(交换x,y) 
    35   swap2(&x,&y);
    36   printf("传址函数外调用 %d %d \n",x,y);
    37   system("PAUSE");    
    38   return 0;
    39 }
    40 

    合乎自然而生生不息。。。
  • 相关阅读:
    递归
    数据结构与算法-复杂度分析
    'latin-1' codec can't encode characters in position解决字符问题
    redis理解
    spring 嵌套事务问题
    Parameterized testing with any Python test framework
    分布式事务测试考虑点
    python orm / 表与model相互转换
    Python多线程、多进程
    JS运动
  • 原文地址:https://www.cnblogs.com/samwu/p/1788094.html
Copyright © 2011-2022 走看看