#include <stdio.h>

#include <math.h>

void metersToFeetAndInches(double meters,unsigned int *ftPtr,double *inPtr){

//这个函数假定meters的值是非负数

//将meters变量的值转化为feet的值,类型为浮点数

double rawFeet = meters * 3.281;  //e.g. 2.4536

printf("rawFeet: %lf\n", rawFeet);

//计算类型为无符号的整形的feet变量的值

unsigned int feet = (unsigned int)floor(rawFeet);

printf("ftPtr: %p\n", ftPtr);

printf("*ftPtr: %d\n", *ftPtr);

//将feet变量的值存储在提供的地址里

//先检查指针是否为NULL

if(ftPtr){

printf("------------------------------------------\n");

printf("Storing %u to the address %p\n",feet ,ftPtr);

*ftPtr = feet;

printf("ftPtr: %p\n", ftPtr);

printf("*ftPtr: %d\n", *ftPtr);

}

//计算英寸

double fractionalFoot = rawFeet - feet;

double inches = fractionalFoot * 12.0;

printf("fractionalFoot: %lf\n", fractionalFoot);

printf("inches: %lf\n", inches);

printf("------------------------------------------\n");

//将inches变量的值保存到传入的地址

//先检查指针是否为NULL

if(inPtr){

printf("Storing %.2f to the address %p\n", inches, inPtr);

*inPtr = inches;

printf("inPtr: %p\n", inPtr);

printf("*inPtr: %lf\n", *inPtr);

}

}

int main(int argc, const char * argv[]) {

double meters = 3.0;

unsigned int feet;

double inches;

metersToFeetAndInches(meters, &feet, &inches);

printf("%.1f meters is equal to %d feet and %.1f inches.",meters,feet,inches);

return 0;

}

结果:

rawFeet: 9.843000

ftPtr: 0x7ffeefbff514

*ftPtr: 0

------------------------------------------

Storing 9 to the address 0x7ffeefbff514

ftPtr: 0x7ffeefbff514

*ftPtr: 9

fractionalFoot: 0.843000

inches: 10.116000

------------------------------------------

Storing 10.12 to the address 0x7ffeefbff508

inPtr: 0x7ffeefbff508

*inPtr: 10.116000

3.0 meters is equal to 9 feet and 10.1 inches.Program ended with exit code: 0

C第10章-----通过引用传递的更多相关文章

  1. java中的引用传递问题

    ---恢复内容开始--- 第一个引用传递案例: class Message{ private int num; public Message(int num){ this.num=num; } pub ...

  2. php值传递和引用传递

    1,参数传值方式有两种,第一种是值传递,第二种引用传递.值传递比较简单,也就是在php中,数组是当一个普通变量,值传递是要一个实参的一个拷贝副本,跟实参无关,而引用传递后可以改变实参的值而类的对象是无 ...

  3. C++中引用传递与指针传递区别

    C++中引用传递与指针传递区别 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的: 指针传递参数本质上是值传递的方式,它所传递的是一个地址值.值传递过程 ...

  4. JavaScript高级程序设计(第三版)学习笔记8、9、10章

    第8章,BOM BOM的核心对象是window,具有双重角色,既是js访问浏览器的一个接口,又是ECMAScript规定的Global对象.因此,在全局作用域中声明的函数.变量都会变成window对象 ...

  5. Java核心技术卷一基础知识-第10章-部署应用程序和applet-读书笔记

    第10章 部署应用程序和applet 本章内容: * JAR文件 * Java Web Start * applet * 应用程序首选项存储 10.1 JAR文件 一个JAR文件既可以包含类文件,也可 ...

  6. 第10章:awk进阶操作

    第10章:awk进阶操作 在第4章:查找与替换简单的讲解了awk的使用,本章介绍详细讲解awk的使用.awk是一个强大的文本分析工具,简单的说awk就是把文件逐行的读入, 以空格为默认分隔符将每行切片 ...

  7. c/c++值传递和引用传递

    今天看数据结构的时候,因为是c语言版的,刚开始学的时候就对指针搞的焦头烂额,今天,发现参数传递的时候,&符号也莫名其妙,搜了一篇好文,转载下来. 一. 函数参数传递机制的基本理论 函数参数传递 ...

  8. 设计模式之第10章-桥接模式(Java实现)

    设计模式之第10章-桥接模式(Java实现) “一入软件深似海,从此早睡是路人.黑夜给了我黑色的眼睛,我却用他去寻找八阿哥.”“怎么了,又来那么多的感慨啊.”“还能有什么啊,老板是说让换个APP做,这 ...

  9. SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)

    SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...

随机推荐

  1. 第十七篇 .NET高级技术之XML

    Xml 简介(可扩展标记语言) XML优点:容易读懂:格式标准任何语言都内置了XML分析引擎,不用单独进行文件分析引擎的编写. Xml就是用一种格式化的方式来存储数据,我们可以通过用记事本打开. .n ...

  2. Linux文件和目录的777、755、644权限解释

    Linux文件和目录的权限 1.文件权限 在linux系统中,文件或目录的权限可以分为3种: r:4 读 w:2 写 x:1  执行(运行)-:对应数值0 数字 4 .2 和 1表示读.写.执行权限 ...

  3. 17984 FFF团的怒火

    17984 FFF团的怒火 该题有题解 时间限制:1000MS  内存限制:65535K提交次数:55 通过次数:3 收入:3 题型: 编程题   语言: G++;GCC;VC;JAVA Descri ...

  4. RHEL 7.2 源码安装Python 3.6.2报错

    报错代码:zipimport.ZipImportError: can't decompress data; zlib not available 一条命令解决:yum install zlib-dev ...

  5. Android设计模式——MVP

    一.什么是MVP MVP:全称 Model-View-Presenter. MVP框架由3部分组成:View层负责显示,Presenter层负责逻辑处理,Model层提供数据. View:负责绘制UI ...

  6. AJPFX浅谈Java性能优化之finalize 函数

    ★finalize 函数的调用机制 俺经常啰嗦:“了解本质机制的重要性”.所以今天也得先谈谈 finalize 函数的调用机制.在聊之前,先声明一下:Java虚拟机规范,并没有硬性规定垃圾回收该不该搞 ...

  7. Map集合的实现类

    Map的继承关系: Map接口的常用实现类: 1.HashMap.Hashtable(t是小写) HashMap不是线程安全的,key.value的值都可以是null. Hashtable是线程安全的 ...

  8. Java GC机制简要总结(Java垃圾回收的基本工作原理)

    第一次编辑 2019-05-07 01:09:39 垃圾回收的对象 程序中的不可用对象(不存活的对象,没有任何引用),或者无用的变量信息等,在程序中长期存在会逐渐占用较多的内存空间,导致没有足够的空间 ...

  9. react基础语法(五) state和props区别和使用

    props的验证: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  10. 一次执行两个npm "start": "concurrently 'npm:dev' 'npm:json-server'"

    用的这个程序 concurrently 说是再有异步的时候,&& 就不好使,而且&& 也不能执行npm 只能执行命令 官方地址:https://www.npmjs.co ...