C++入门【24-C++ 传递指针给函数】

C++ 允许您传递指针给函数,只需要简单地声明函数参数为指针类型即可。

下面的实例中,我们传递一个无符号的 long 型指针给函数,并在函数内改变这个值:

实例

cpp 复制代码
#include <iostream>

#include <ctime>
 
using namespace std;
 // 在写函数时应习惯性的先声明函数,然后在定义函数
void getSeconds(unsigned long *par);
 int main ()
{
   unsigned long sec;
 
   getSeconds( &sec );
    // 输出实际值
   cout << "Number of seconds :" << sec << endl;
 
   return 0;
}
 
void getSeconds(unsigned long *par)
{
   // 获取当前的秒数

   *par = time( NULL );
   return;
}

当上面的代码被编译和执行时,它会产生下列结果:

Number of seconds :1294450468

能接受指针作为参数的函数,也能接受数组作为参数,如下所示:

实例

cpp 复制代码
#include <iostream>

using namespace std;
 
// 函数声明

double getAverage(int *arr, int size);
 
int main ()
{
   // 带有 5 个元素的整型数组

   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;
 
   // 传递一个指向数组的指针作为参数

   avg = getAverage( balance, 5 ) ;
 
   // 输出返回值

   cout << "Average value is: " << avg << endl; 
    
   return 0;
}
 
double getAverage(int *arr, int size)
{
  int    i, sum = 0;       
  double avg;          
 
  for (i = 0; i < size; ++i)
  {
    sum += arr[i];
   }
 
  avg = double(sum) / size;
 
  return avg;
}

当上面的代码被编译和执行时,它会产生下列结果:

Average value is: 214.4

相关推荐
2301_822703201 小时前
鸿蒙Flutter第三方库FlutterUnit组件百科适配——具体示例还原演示1
算法·flutter·华为·harmonyos·鸿蒙
老四啊laosi7 小时前
[C++进阶] 24. 哈希表封装unordered_map && unordered_set
c++·哈希表·封装·unordered_map·unordered_set
2301_764441337 小时前
LISA时空跃迁分析,地理时空分析
数据结构·python·算法
东北洗浴王子讲AI7 小时前
GPT-5.4辅助算法设计与优化:从理论到实践的系统方法
人工智能·gpt·算法·chatgpt
妙为8 小时前
银河麒麟V4下编译Qt5.12.12源码
c++·qt·国产化·osg3.6.5·osgearth3.2·银河麒麟v4
Billlly8 小时前
ABC 453 个人题解
算法·题解·atcoder
玉树临风ives8 小时前
atcoder ABC 452 题解
数据结构·算法
feifeigo1239 小时前
基于马尔可夫随机场模型的SAR图像变化检测源码实现
算法
fengfuyao9859 小时前
基于STM32的4轴步进电机加减速控制工程源码(梯形加减速算法)
网络·stm32·算法
无敌昊哥战神10 小时前
深入理解 C 语言:巧妙利用“0地址”手写 offsetof 宏与内存对齐机制
c语言·数据结构·算法