[开发资料] C语言传递指针给函数

[复制链接]
600|3
 楼主| 1988020566 发表于 2022-9-11 20:27 | 显示全部楼层 |阅读模式

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

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

实例

  1. #include <stdio.h>
  2. #include <time.h>

  3. void getSeconds(unsigned long *par);

  4. int main ()
  5. {
  6.    unsigned long sec;


  7.    getSeconds( &sec );

  8.    /* 输出实际值 */
  9.    printf("Number of seconds: %ld\n", sec );

  10.    return 0;
  11. }

  12. void getSeconds(unsigned long *par)
  13. {
  14.    /* 获取当前的秒数 */
  15.    *par = time( NULL );
  16.    return;
  17. }

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

Number of seconds :1294450468

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

  1. #include <stdio.h>

  2. /* 函数声明 */
  3. double getAverage(int *arr, int size);

  4. int main ()
  5. {
  6.    /* 带有 5 个元素的整型数组  */
  7.    int balance[5] = {1000, 2, 3, 17, 50};
  8.    double avg;

  9.    /* 传递一个指向数组的指针作为参数 */
  10.    avg = getAverage( balance, 5 ) ;

  11.    /* 输出返回值  */
  12.    printf("Average value is: %f\n", avg );
  13.    
  14.    return 0;
  15. }

  16. double getAverage(int *arr, int size)
  17. {
  18.   int    i, sum = 0;      
  19.   double avg;         

  20.   for (i = 0; i < size; ++i)
  21.   {
  22.     sum += arr[i];
  23.   }

  24.   avg = (double)sum / size;

  25.   return avg;
  26. }

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

Average value is: 214.40000

chenjun89 发表于 2022-10-5 11:53 来自手机 | 显示全部楼层
学习了,不错的分享。
AloneKaven 发表于 2022-10-5 20:10 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

420

主题

11013

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部