调用子程序时参数含有指针该如何处理
有这样一个程序,在main函数中通过调用子程序min,求出一数组中的最小元素值:
#inlude <stdio.h> int main() { int a[7] = {-1, 9, 7, 3, -100, 0, 8}; int minvalue; minvalue = min(a, 7); printf("minvalue = %d", minvalue); return 0; } int min(int *p, int n) { int i, minvalue; minvalue = *p; for (i = 1; i < n; i++) { if (*(p+i) < minvalue) minvalue = *(p+i); } return(minvalue); }
当min被调用时,将数组a的地址赋值给指针p,也就是说,p时指向数组a的指针。这样,有a[i]==*(p+i),就可以用指针p来间接引用数组a中的元素。
min函数的头还可以写成:
int min(int p[], int n)这样,在外在形式上与main函数中的调用形式一致,但须注意,形式上为p[ ]数组,但C语言中实际上是以指针方式来处理p的。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 函数调用参数为指针时,实参跟形参的问题
- 下一篇: Python判断文件和文件夹是否存在的方法