首先可以明确的一点是,一个函数想要修改另一个函数的变量值,必须传指针和解引用。
错误范例1:

void Swap_err(int a,int b)
{int tmp = a;a = b;b = tmp;
}
int main()
{int a = 10;int b = 20;Swap(&a,&b);printf("a=%d,b=%d",a,b); //传a,b的地址(因为Swap函数定义的是指针变量)return 0;

在这个函数中没有传指针,只是值传递。

错误范例2:

void Swap_err(int *p1,int *p2)
{int *tmp = p1;p1 = p2;p2 = tmp;
}
int main()
{int a = 10;int b = 20;Swap(&a,&b);printf("a=%d,b=%d",a,b); //传a,b的地址(因为Swap函数定义的是指针变量)return 0;

在这个函数中没有解引用。

错误范例3:

void Swap_err(int *p1,int *p2)
{int *tmp;//野指针*tmp = *p1;//崩溃*p1 = *p2;*p2 = *tmp;
}
int main()
{int a = 10;int b = 20;Swap(&a,&b);printf("a=%d,b=%d",a,b); //传a,b的地址(因为Swap函数定义的是指针变量)return 0;

在这个函数中有野指针,导致函数崩溃。野指针和空指针不一样。野指针:悬挂指针,没有访问权限的地址。NULL:空指针,无效指针,不能解引用。野指针可以定义,但不能访问和赋值。

正确写法:

void Swap(int *p1,int *p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}
int main()
{int a = 10;int b = 20;Swap(&a,&b);printf("a=%d,b=%d",a,b); //传a,b的地址(因为Swap函数定义的是指针变量)return 0;
}

如何用一个函数修改另一个函数的值相关推荐

  1. pandas如何通过函数修改某一列的值?

    在python中,如何运用pandas通过函数修改某一列的值呢?阅读本文,你就会了. 目录 一.测试数据 二.明确目标 三.程序代码 四.简单总结 一.测试数据 二.明确目标 我们的目标就是将上报时间 ...

  2. 【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )

    文章目录 一.设置.获取线程优先级的核心函数 二.修改线程调度策略函数 一.设置.获取线程优先级的核心函数 设置.获取 线程 优先级的 核心 函数 : ① 设置 " 创建线程 " ...

  3. C++ : 类的成员函数修改类中数据成员值

    遇到一个问题是:在类中有一个数据成员,是public的,在类的成员函数中进行修改,这个类的成员函数可能是要调用多次,想知道是不是每一次调用都有效 写了一个测试函数: #include <iost ...

  4. flink中的java匿名函数修改为实名函数

    [1]中有这么个代码 DataStream<Tuple2<String, Long>> keyedStream = env.addSource(consumer).flatMa ...

  5. python——函数(定义函数、传递实参、返回值、传递列表、传递任意数量的实参、将函数存储在模块中、函数编写指南)

    目录 定义函数 传递实参 返回值 传递列表 传递任意数量的实参 将函数存储在模块中 函数编写指南 定义函数 #------定义函数---------- def user():print('hello! ...

  6. 【Python 3.7】编写一个名为make_great() 的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样“the Great”。

    [Python 3.7]编写一个名为make_great() 的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样"theGreat".调用函数 show_magician ...

  7. ACMNO.23 C语言-素数判定 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime

    题目描述 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息. 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime 样例输入 97 样例输出 prime 来源/ ...

  8. 20 Python函数、定义一个函数、参数传递、匿名函数、return语句、变量作用域、

    20Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你 ...

  9. python一个函数调用另一个函数_在Python中将函数作为另一个函数的参数传入并调用的方法...

    在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用 在旧版本中,可以使用apply(function, *args, **kwargs)进行调用,但是在新版本中已经移除, ...

最新文章

  1. iOS开发 关于启动页和停留时间的设置
  2. AI一分钟 | AI溃败,Dota2人机大战首场终结;阿里公布第一财季财报,净利76.50亿元...
  3. 中国学者变革300多年来的活塞!MIT、哈佛联手,动力3倍以上,可节能40%
  4. Debian和CentOS主流系统按包含文件名称搜索软件包
  5. Laravel 日期时间处理包 Carbon 的应用
  6. 在浏览器里使用 SAP GUI
  7. Spring系列(六) Spring Web MVC 应用构建分析
  8. PDF转换为其他格式的方法
  9. Android 不自动弹出软键盘
  10. 现代信号处理——自适应滤波器(匹配滤波器)
  11. 玩游戏提示计算机内存不足怎么办,打开软件提示内存不足怎么办?电脑提示内存不足解决办法...
  12. Software Protection无法启动造成slmgr.vbs激活win10失败
  13. DMA普通模式(normal)发送通过串口连续发送数据
  14. myeclipse17创建Web、Maven项目
  15. 某软件测试大纲,软件测试(验收)大纲
  16. Docker学习(二):安装软件
  17. Django 查看migration文件生成的sql
  18. html代码设置五边形,javascript怎么画正五边形?
  19. Photozoom图像放大的技术一二事
  20. ERROR: Command errored out with exit status 1: command: /bin/python -c ‘import sys, setuptools, toke

热门文章

  1. Python 递归式实现二叉树前序、中序、后序遍历
  2. java traits,java traits还是mixins模式?
  3. wordcloud python_python模块之wordcloud
  4. 被讨厌的勇气:目的论
  5. 基于SSH的学生考勤管理系统
  6. rrdtool php 绘图,利用PHP的Popen实现RRDTOOL作图的动态输出
  7. Dapp 众筹项目(5)
  8. 第七组509寝室课后习题4.34
  9. python语法讲解小白入门第二篇
  10. 一次calico起不来的问题排查