当前位置: 首页> 汽车> 车展 > 郑州建设局网站_电脑基础培训班哪里有_免费b站推广网站入口2020_外贸独立站怎么建站

郑州建设局网站_电脑基础培训班哪里有_免费b站推广网站入口2020_外贸独立站怎么建站

时间:2025/7/11 17:50:13来源:https://blog.csdn.net/Rachelwanqiu/article/details/147011493 浏览次数: 1次
郑州建设局网站_电脑基础培训班哪里有_免费b站推广网站入口2020_外贸独立站怎么建站

指针在函数参数中的应用

我们在上一篇文章有提到过,C++需要指针来操纵内存地址来管理数据,那么我们在函数中是如何使用指针来改变实参的值呢?
如果我们相求两个数a和b的和和积,那么我们先试着用最简单的形式写一下看看:

#include <iostream>
using namespace std;//--- 把 x 与 y 的和与积赋给 *sum 与 *mul ---
void sum_mul(int x, int y, int sum, int mul)
{sum = x + y;       // 把 x 与 y 的和赋给 summul = x * y;       // 把 x 与 y 的积赋给 mul
}int main()
{int a, b;int he = 0, ji = 0;cout << "整数 a:";   cin >> a;cout << "整数 b:";   cin >> b;sum_mul(a, b, he, ji);  // 计算 a 与 b 的和与积cout << "和为 " << he << "。" << endl;cout << "积为 " << ji << "。" << endl;
}

在这个例子中,函数参数是按值传递的,这意味着函数内部对参数的修改不会影响到主函数中的变量。如果主函数中调用 sum_mul (a, b, he, ji),那么 sum 和 mul 只是 he 和 ji 的副本,函数内部对它们的修改不会改变主函数中的 he 和 ji。因此,这个函数无法正确实现预期功能。
如果我们使用指针来做实现这个功能呢?

#include <iostream>
using namespace std;//--- 把 x 与 y 的和与积赋给 *sum 与 *mul ---
void sum_mul(int x, int y, int* sum, int* mul)
{*sum = x + y;      // 把 x 与 y 的和赋给 *sum*mul = x * y;      // 把 x 与 y 的积赋给 *mul
}int main()
{int a, b;int he = 0, ji = 0;cout << "整数 a:";   cin >> a;cout << "整数 b:";   cin >> b;sum_mul(a, b, &he, &ji);  // 计算 a 与 b 的和与积cout << "和为 " << he << "。" << endl;cout << "积为 " << ji << "。" << endl;
}

通过解引用操作符(指针符号) *,可以访问指针指向的内存地址中的值。例如,*sum = x + y 表示将 x + y 的结果存储到 sum 指向的内存地址中。主函数调用的时候,用 sum_mul(a, b, &he, &ji) 时,&he 和 &ji 分别是变量 he 和 ji 的内存地址。
函数内部通过指针修改了这些内存地址中的值,因此主函数中的 he 和 ji 会被正确更新。
我们看一下这里函数的参数是怎样传递的?
值的传递
在这里注意看绿色框中的数据,我们传递的是变量he和ji的地址212和216,而不he和ji的值。

为什么使用指针?

当需要通过函数修改主函数变量的值的时候,指针是常用的方法。指针允许函数直接修改主函数中的变量,而不需要返回值。

关键字:郑州建设局网站_电脑基础培训班哪里有_免费b站推广网站入口2020_外贸独立站怎么建站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: