C编程允许传递指向函数的指针,为此,只需将函数参数声明为指针类型。
下面是一个简单的示例,我们将一个无符号长指针传递给一个函数,并更改该函数内部的值,该值反映在调用函数中
链接:https://www.learnfk.comhttps://www.learnfk.com/c-programming/c-passing-pointers-to-functions.html
来源:LearnFk无涯教程网
#include <stdio.h> #include <time.h> void getSeconds(unsigned long *par); int main () { unsigned long sec; getSeconds( &sec ); /* 打印实际值 */ printf("Number of seconds: %ld\n", sec ); return 0; } void getSeconds(unsigned long *par) { /* 获取当前秒数 */ *par=time( NULL ); return; }
编译并执行上述代码时,将生成以下结果-
Number of seconds :1294450468
该函数可以接受指针,也可以接受数组,如以下示例所示
#include <stdio.h> /* 函数声明 */ double getAverage(int *arr, int size); int main () { /* 一个包含 5 个元素的 int 数组 */ int balance[5]={1000, 2, 3, 17, 50}; double avg; /* 将指向数组的指针作为参数传递 */ avg=getAverage( balance, 5 ) ; /* 输出返回值 */ printf("Average value is: %f\n", avg ); return 0; } double getAverage(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; }
当上面的代码一起编译并执行时,它会产生以下结果-
Average value is: 214.40000
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)