以指针作为函数参数[1]

为什么需要用指针做参数?

  • 需要数据双向传递时(引用也可以达到此效果)
  1. 用指针作为函数的参数,可以使被调函数通过形参指针存取主调函数中实参指针指向的数据,实现数据的双向传递。(实际上传指针也是引用传递的一种,将主调函数中已经定义好的变量地址放在指针里面传给被调函数,这样在被调用的函数体中,可以通过传过来的指针
    直接操作主调函数中的数据,这样就实现了数据的双向传递)
  • 需要传递一组数据,只传首地址运行效率比较高
  1. 实参是数组名时形参可以是指针

例6-10 读入三个浮点数,将整数部分和小数部分分别输出

#include <iostream>
using namespace std;
void splitFloat(float x, int *intPart, float *fracPart) {*intPart = static_cast<int>(x); //取x的整数部分*fracPart = x - *intPart; //取x的小数部分
}
int main() {cout << "Enter 3 float point numbers:" << endl;for(int i = 0; i < 3; i++) {float x, f;int n;cin >> x;splitFloat(x, &n, &f);   //变量地址作为实参cout << "Integer Part = " << n << " Fraction Part = " << f << endl;}return 0;
}

记住浮点数在机器内部是近似存储的,千万不要在程序中去比较两个浮点数是否相等,理论上应该是相等的,但实际上在计算机内部它可能就差这么点。
所以如果要比较两个浮点数是否相等,可以采用让它们两个相减,如果相减的差充分小(比如小于10的负多少次方)满足精度要求就认为它们相等。

参考

  1. ^http://www.xuetangx.com/courses/course-v1:TsinghuaX+00740043X_2015_T2+sp/courseware/d4eb7d174ba04a4da6282bcae197892c/b7924d7fabf8450bbe97639cb4255213/

this指针作为函数参数_C++以指针作为函数参数(学习笔记:第6章 10)相关推荐

  1. 《Go语言圣经》学习笔记 第五章函数

    <Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...

  2. 基类指针调用派生类函数_C++ 多态性:虚函数--基类与派生类类型转换(第7章 05)例子问题解析(学习笔记:第8章 05)...

    虚函数[1] 问题:还记得第7章的例子吗[2]? 例7-3 类型转换规则举例 #include <iostream> using namespace std; class Base1 { ...

  3. 对指针变量取地址_C语言指针简介(amp;和*运算符)

    取地址符(&) 和  取值符(*) (1)& 运算符 :用于取一个对象的地址 例如:int *p;    p = &c;    将c的地址赋值给指针变量p,我们称p为 &quo ...

  4. [转载] c语言中检查命令行参数_C中的命令行参数

    参考链接: Java中的命令行参数 c语言中检查命令行参数 Command line argument is a parameter supplied to the program when it i ...

  5. mysql 函数重载_C#方法重载(函数重载)

    在讲解<C#构造方法>时提到定义构造方法时提到可以定义带 0 到多个参数的构造方法,但构造方法的名称必须是类名.实际上,这就是一个典型的方法重载,即方法名称相同.参数列表不同. 参数列表不 ...

  6. Python学习笔记__4.1章 高阶函数

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们知道Python内置的求绝对值的函数是abs() # 调用abs()函数可以获得一个值 >>> abs(-10) 10 ...

  7. Kotlin学习笔记 第三章 函数 高阶函数 lambda表达式 内联函数

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  8. linux getline函数用法,Linux文本处理三剑客之awk学习笔记05:getline用法详解

    getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据.我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个非待处理文件的数据,或者从某个读取某个 ...

  9. 廖雪峰讲python高阶函数求导公式_廖雪峰的学习笔记(三)高阶函数

    1.所谓的"高阶函数":把函数对象作为参数的函数. 2.示例: map()函数: 我们先看map.map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数 ...

  10. @requestbody 接受int参数_C++之指针作为函数参数

    C++ 允许您传递指针给函数,只需要简单地声明函数参数为指针类型即可. 下面的实例中,我们传递一个无符号的 long 型指针给函数,并在函数内改变这个值: #include <iostream& ...

最新文章

  1. (已解决torchvision中CIFAR10下载速度慢)如何下载以及使用torchvision导入
  2. Android动态修改选中和不选中的Button图片颜色
  3. java的默认_java默认包的使用
  4. 基于ssm的水果商城系统项目总结
  5. spring mvc学习(17)Intellij IDEA创建maven项目无java文件问题
  6. (王道408考研数据结构)第八章排序-第二节:直接插入排序和希尔排序
  7. SSH框架下的在线人数统计的一种解决途径
  8. shell之vi替换字符串
  9. 利用格拉布斯准则,剔除异常数据
  10. 关于8266WiFi模块(AT)问题分析与解答(单片机和wifi模块连接)
  11. 【CODETOOL】文件比较Beyond Compare使用介绍
  12. VMware中的三种网络模式
  13. 【机器学习PAI实践十一】机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码
  14. 部分PTA的入门习题以及题解
  15. 如何使用DolphinDB处理Tushare金融数据
  16. git提交提示workspace.xml出现conflicted
  17. 【Python从0到1】第三篇:基础语法(三)
  18. 二维数组解引用解释——指针
  19. CAS单点登录系统的实现
  20. 游戏大厅 从基础开始(4)-通过L2X用配置文件反射组装程序(VB only)

热门文章

  1. java学习笔记七——继承
  2. Ubuntu中使用freeradius配置RADIUS,并在RADIUS中配置LDAP 并实现AP认证
  3. 利用css和js实现页面的标签效果。(标签个数可以动态变化)
  4. Eclipse中与CVS相连的工程中的文件,不显示版本信息时,如何处理(重启Eclipse)!
  5. 力扣题目——653. 两数之和 IV - 输入 BST
  6. 力扣题目——350. 两个数组的交集 II
  7. 一种解决Android studio 3.0 Build报错的方法
  8. javax.crypto.BadPaddingException: Given final block not properly padded 解决方法
  9. axure html尺寸,Axure 原型 | 教你使用自适应视图构建界面
  10. java对集合的操作_Java中对List集合的常用操作