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