c语言函数形参实参问题

c语言函数形参实参问题,第1张

明确一点,由于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;

}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12155054.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存