• 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 

    合乎自然而生生不息。。。
  • 相关阅读:
    HtmlAgilityPack
    随笔-20150513
    过滤掉html 标签
    json转换
    第28月第3天 c语言读写文件
    第27月第28天 iOS bundle
    第27月第27天 https
    第27月第25天 clang -rewrite-objc main.m
    第27月第24天 git pull fetch
    第27月第18天 epoll lt et
  • 原文地址:https://www.cnblogs.com/samwu/p/1788094.html
Copyright © 2020-2023  润新知