
明确一点,由于C只有值传递,所以任何情况下,形参只是实参的副本,形参改变都不会影响实参本身
那么特别的,这里的参数是指针
举个例子,若定义
int a=0,p=&a,q=&a;
那么如果(p)++后,你认为(q)的值是多少
当然是1
那么在带回函数调用的问题,如果参数是指针的话,同上理,是间接改变变量的值,这也正是值传递精髓
#include<stdioh>
int compare(int,int);
void main()
{
int a[10],b[10],i,large=0,small=0,equal=0;
printf("Please input the array a:\n");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);//加个&
printf("Please input the array b:\n");
for(i=0;i<=9;i++)
scanf("%d",&b[i]);//同上
for(i=0;i<=9;i++)
{
if(compare(a[i],b[i])==1)
large=large+1;
else if(compare(a[i],b[i])==-1)
small=small+1;
else if(compare(a[i],b[i])==0)
equal=equal+1;
}
printf("a[i]>b[i]:%d times\n",large);
printf("a[i]<b[i]:%d times\n",small);
printf("a[i]=b[i]:%d times\n",equal);
if(large>small)
printf("a[i]>b[i]\n");
else if(small>large)
printf("a[i]<b[i]\n");
else
printf("a[i]=b[i]\n");
getch();
}
int compare(int x,int y)
{
int flag;
if(x>y)
flag=1;
else if(x<y)
flag=-1;
else
flag=0;
return flag;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)