长春火车站进站需要核酸检测吗,wordpress主题 科技,网络平台图片,稳定的常州网站推广接上篇#xff1a;C语言基础篇5#xff1a;指针(一) 4 指针作为函数参数 4.1 指针变量作为函数的参数 指针型变量可以作为函数的参数#xff0c;使用指针作为函数的参数是将函数的参数声明为一个指针#xff0c;前面提到当数组作为函数的实参时#xff0c;值传递数组的地址…接上篇C语言基础篇5指针(一) 4 指针作为函数参数 4.1 指针变量作为函数的参数 指针型变量可以作为函数的参数使用指针作为函数的参数是将函数的参数声明为一个指针前面提到当数组作为函数的实参时值传递数组的地址而不是将整个数组赋值给函数中去。当用数组名作为实参调用函数时指向该数组的第一个元素的指针就被传递到函数中去。例如声明一个函数的参数为指针时传递数组的方法如下
void Function(int *p);//声明函数
int iArray[10];//声明整型数组
Function(iArray);//将数组名作为实参进行传递 在上面代码中可以看到在声明Function时指针作为函数的参数。在调用函数时可以将数组名作为函数的实参进行传递。
【示例4.1.1】调用自定义函数交换两个变量的值。
#include stdio.hvoid swap(int *a,int *b){int temp;temp *a;*a *b;*b temp;
}int main() {int x,y,*p_x,*p_y;printf(请输入两个数:\n);scanf(%d,x);scanf(%d,y);printf(x %d\n,x);printf(y %d\n,y);p_x x;p_y y;swap(p_x,p_y);printf(两个数交换的结果是\n);printf(x %d\n,x);printf(y %d\n,y);return 0;
} swap函数是用户自定义函数在main函数中调用该函数交换变量a和b的值swap函数的两个形参被传入了两个地址值也就是传入了两个指针变量在swap函数的函数体内使用整型变量temp作为中间变量将两个指针变量所指向的数值进行交换。 在函数调用过程中主调用函数与被调用函数之间有一个数值传递过程。函数调用中发生的数据传递是单向的只能把实参的值传递给形参在函数调用的过程中形参的值发生变化实参的值不会发生变化。通过指针传递参数可以减少值传递带来的“开销”也可以使函数调用不产生值传递。C语言中实参变量的形参变量之间的数据传递是单向的“值传递”方式。指针变量做函数的参数也是如此。