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

相关推荐
光电笑映1 分钟前
STL 源码解密:unordered 系列容器的底层复用与哈希策略
算法·哈希算法·散列表
6Hzlia12 分钟前
【Hot 100 刷题计划】 LeetCode 215. 数组中的第K个最大元素 | C++ 快速选择与堆排序题解
c++·算法·leetcode
小白菜又菜13 分钟前
Leetcode 3070. Count Submatrices with Top-Left Element and Sum Less Than k
算法·leetcode·职场和发展
笨笨饿27 分钟前
32_复变函数在工程中实际应用区别于联系
linux·服务器·c语言·人工智能·单片机·算法·学习方法
「QT(C++)开发工程师」32 分钟前
C++17三大实用特性详解:内联变量、std::optional、std::variant
jvm·c++
会编程的土豆33 分钟前
【数据结构与算法】拓扑排序2
数据结构·算法·leetcode
Boop_wu40 分钟前
[Java 算法] 栈
java·开发语言·算法
追风落叶乔木生41 分钟前
字节跳动后端一面全解析|基础+算法真题(2026最新版)
算法·哈希算法
不爱吃炸鸡柳41 分钟前
C++ STL 核心:string 从入门到精通(面试+源码+OJ实战)
java·c++·面试
来自远方的老作者41 分钟前
第7章 运算符-7.5 比较运算符
开发语言·数据结构·python·算法·代码规范·比较运算符