C第10章-----通过引用传递
#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章-----通过引用传递的更多相关文章
- java中的引用传递问题
---恢复内容开始--- 第一个引用传递案例: class Message{ private int num; public Message(int num){ this.num=num; } pub ...
- php值传递和引用传递
1,参数传值方式有两种,第一种是值传递,第二种引用传递.值传递比较简单,也就是在php中,数组是当一个普通变量,值传递是要一个实参的一个拷贝副本,跟实参无关,而引用传递后可以改变实参的值而类的对象是无 ...
- C++中引用传递与指针传递区别
C++中引用传递与指针传递区别 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的: 指针传递参数本质上是值传递的方式,它所传递的是一个地址值.值传递过程 ...
- JavaScript高级程序设计(第三版)学习笔记8、9、10章
第8章,BOM BOM的核心对象是window,具有双重角色,既是js访问浏览器的一个接口,又是ECMAScript规定的Global对象.因此,在全局作用域中声明的函数.变量都会变成window对象 ...
- Java核心技术卷一基础知识-第10章-部署应用程序和applet-读书笔记
第10章 部署应用程序和applet 本章内容: * JAR文件 * Java Web Start * applet * 应用程序首选项存储 10.1 JAR文件 一个JAR文件既可以包含类文件,也可 ...
- 第10章:awk进阶操作
第10章:awk进阶操作 在第4章:查找与替换简单的讲解了awk的使用,本章介绍详细讲解awk的使用.awk是一个强大的文本分析工具,简单的说awk就是把文件逐行的读入, 以空格为默认分隔符将每行切片 ...
- c/c++值传递和引用传递
今天看数据结构的时候,因为是c语言版的,刚开始学的时候就对指针搞的焦头烂额,今天,发现参数传递的时候,&符号也莫名其妙,搜了一篇好文,转载下来. 一. 函数参数传递机制的基本理论 函数参数传递 ...
- 设计模式之第10章-桥接模式(Java实现)
设计模式之第10章-桥接模式(Java实现) “一入软件深似海,从此早睡是路人.黑夜给了我黑色的眼睛,我却用他去寻找八阿哥.”“怎么了,又来那么多的感慨啊.”“还能有什么啊,老板是说让换个APP做,这 ...
- SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)
SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...
随机推荐
- git 保存文件目录
Ubuntu中git clone就保存在你命令行现在所在的目录里 所以最好推荐 先用cd这个命令去自己想保存的目录 之后再git clone
- python之小技巧积累
交换a和b的值:a=11b=22#引进第三个变量交换a和b的值# c=a#把a给c,现在c是11# a=b#把b给a,现在a是22# b=c#把c给b,现在b是11 #不引进第三个变量,交换a和b的值 ...
- 那些坑爹的python面试题
python基础知识思维导图 MyProcessOn Python基础: 说说你眼中的python( 2 ) 谈谈你对python和其他语言的区别 1. python 中,变量是以内容为基准而不是像 ...
- 数据库sql 使用 lag 和OVER 函数和 like 使用 小技巧
1. sample 1: Lag()就是取当前顺序的上一行记录.结合over就是分组统计数据的.Lag()函数,就是去上N行的字段的数据. SQL> select * from x; A---- ...
- HDU 4366 Successor 分块做法
http://acm.hdu.edu.cn/showproblem.php?pid=4366 今日重新做了这题的分块,果然是隔太久了,都忘记了.. 首先,用DFS序变成一维的问题 关键是它有两个权值, ...
- mvc报( 检测到有潜在危险的 request.form 值 )错的解决方案
今天在做项目中遇到了报( 检测到有潜在危险的 request.form 值 )错,百度过后解决了该问题,出此问题主要还是因为提交的Form中有HTML字符串,例如你在TextBox中输入了html标签 ...
- AJPFX浅谈Java性能优化之finalize 函数
★finalize 函数的调用机制 俺经常啰嗦:“了解本质机制的重要性”.所以今天也得先谈谈 finalize 函数的调用机制.在聊之前,先声明一下:Java虚拟机规范,并没有硬性规定垃圾回收该不该搞 ...
- REST风格笔记
这一篇主要是看了FB的覃超大大的文章,做了一些笔记和自己的思考. 定义: 用URL来定义资源,用HTTP(GET/POST/DELETE/DETC)来描述操作. 1. REST描述的是网络 ...
- jQuery选择器之子元素选择器
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content ...
- 一个Java编写的小玩意儿---多人在线聊天工具
这个在线聊天工具小项目使用JAVA编写,用JAVA来做图形界面本来就是出了名的低效和丑陋.不过这不是重点.写这个小项目的目的在于串一串J2SE的知识,把当时写这个项目的时候的思路梳理一下.时间有点久了 ...