C 传递指针给函数

时间:2022-10-09 23:14:37

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

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

 1 #include <stdio.h>
 2 #include <time.h>
 3  
 4 void getSeconds(unsigned long *par);
 5 
 6 int main ()
 7 {
 8    unsigned long sec;
 9 
10 
11    getSeconds( &sec );
12 
13    /* 输出实际值 */
14    printf("Number of seconds: %ld\n", sec );
15 
16    return 0;
17 }
18 
19 void getSeconds(unsigned long *par)
20 {
21    /* 获取当前的秒数 */
22    *par = time( NULL );
23    return;
24 }

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

Number of seconds :1294450468

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

 1 #include <stdio.h>
 2  
 3 /* 函数声明 */
 4 double getAverage(int *arr, int size);
 5  
 6 int main ()
 7 {
 8    /* 带有 5 个元素的整型数组  */
 9    int balance[5] = {1000, 2, 3, 17, 50};
10    double avg;
11  
12    /* 传递一个指向数组的指针作为参数 */
13    avg = getAverage( balance, 5 ) ;
14  
15    /* 输出返回值  */
16    printf("Average value is: %f\n", avg );
17     
18    return 0;
19 }
20 
21 double getAverage(int *arr, int size)
22 {
23   int    i, sum = 0;       
24   double avg;          
25  
26   for (i = 0; i < size; ++i)
27   {
28     sum += arr[i];
29   }
30  
31   avg = (double)sum / size;
32  
33   return avg;
34 }

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

Average value is: 214.40000