#include<stdio.h>
void a(int z1[], int s);
int wc1,wc2;
void main()
{
int z[10] = {3,66,99,88,654,123,951,753,642,1}, a1;
wc1 = z[0];
wc2 = z[0];
a(z,10);
printf("%d,%d",wc1,wc2);
}
void a(int *z1,int s)
{
int a1;
for (a1 = 0; a1 < s; a1++)
{
if (*(z1 + a1) > wc1)
wc1 = *(z1+a1);
if (*(z1 + a1) < wc2)
wc2 = *(z1+a1);
}
}
其他的删了没存。。。。。
f(int a[],int n)
但在编译时是将a按指针变量处理的,相当于将函数f的首部写成f(int *a,int n)
以上两种写法啊是等价的
C语言在调用函数时虚实结合的方法都是采用“值传递”方式,当用变量名作为函数参数时传递的是变量的值,当用数组名作为函数参数,由于数组名代表的是数组首元素地址,因此传递的值是地址,所以要求形参为指针变量。
还是很神奇的