C 传递指针给函数

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. }

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

  1. 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. return 0;
  14. }
  15. double getAverage(int *arr, int size)
  16. {
  17. int i, sum = 0;
  18. double avg;
  19. for (i = 0; i < size; ++i)
  20. {
  21. sum += arr[i];
  22. }
  23. avg = (double)sum / size;
  24. return avg;
  25. }

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

  1. Average value is: 214.40000