C 语言 传递指针给函数

返回上一级

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

传递指针给函数最大的好处就是可以在函数内部改变指针的值。

范例:传递一个 unsigned long 型指针给函数,并在函数内改变这个值

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 */

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

void get_seconds( unsigned long *sec );

int main ()
{
   unsigned long sec;


   get_seconds( &sec );

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

   return 0;
}

void get_seconds(unsigned long *sec)
{
   /* 获取当前的秒数 */
   *sec = time( NULL );
   return;
}

编译和运行上面的范例,输出结果如下

$ gcc main.c && a.out
Number of seconds: 1506417700

能接受指针作为参数的函数,也能接受数组作为参数

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 */

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

#include <stdio.h>

/* 函数声明 */
double average(int *arr, int size);

int main ()
{
   /* 带有 5 个元素的整型数组  */
   int balance[5] = {9, 99, 999, 9999};
   double avg;

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

   /* 输出返回值  */
   printf("average value is: %f\n", avg );

   return 0;
}

double average(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;
}

编译和运行上面的代码,输出结果如下

$ gcc main.c && a.out
average value is: 2221.200000

返回上一级

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.