以指针作为函数参数[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的负多少次方)满足精度要求就认为它们相等。