zoukankan      html  css  js  c++  java
  • 通过指针修改外边实参

    函数内容如何改变外部的实参?

    对于上面的问题,只有C中的指针能够完成,

    基本数据类型作为函数实参,只是将值纯粹的传递给形参,形参的改变并不影响实参.

     1 #include<stdio.h>
     2 
     3 void swap(char v1,char v2) {
     4     printf("更换前实参传来的形参的值:v1=%d,v2=%d
    ",v1,v2);//这里的v1和v2是从下面的main主函数中实参传来的;
     5     char temp;
     6     temp = v1;
     7     v1= v2;
     8     v2 = temp;
     9     printf("更换后形参的值肯定发生了变化:v1=%d,v2=%d
    ",v1,v2);
    10 }
    11 
    12 
    13 int main(int argc,const char *argv[],const char **env[]) {
    14     char a = 10,b = 9;
    15     printf("实参在外边函数未调用前:a=%d,b=%d
    ",a,b);
    16     swap(a,b);
    17     printf("实参在外边函数调用后值:a=%d,b=%d
    ",a,b);//变量a,b的值是肯定不会改变的,应用外边函数式没法改变此处的数值的,在函数调用过程中,只是实参的值简单的传递给形参,形参的值是会改变 的,但是实参的值是不会改变的,
    18 }

    测试内部函数改变外部的实参,只有纸质能够做到,

    为什么指针能够做到呢?因为指针(是外边函数的形参)指向的就是实参 的内存地址,

    void swap(char *v1,char *v2) {

        

    }

    swap(&a,&b);

     上面 的函数就不写了!附个运行结果图

    2,利用指针实现函数有抖个返回值;

    指针变量所在内存空间大小可用sizeof函数计算;

    int *p1;

    int a = sizeof(p1);

    指针变量占内存空间大小不会随锁指向的变量类型 的改变而发生大小的改变;

  • 相关阅读:
    C#学习笔记---基础入门(二)
    微软Hololens设备 浅分析
    phpstorm 破解方法
    iOS 审核被拒,日志中找不到苹果返回的creashlog的解决办法
    flutter学习之添加第三方应用
    MAC flutter初步学习
    python Django 连接数据库失败的解决方法
    Python之学习菜鸟教程踩的坑
    Python学习之环境搭建
    tableView reload 不闪动方法
  • 原文地址:https://www.cnblogs.com/ruiy/p/internal.html
Copyright © 2011-2022 走看看