求助,学习c的高手
#include<stdio.h>int func(int a,int *p);
viod main()
{
int a=1,b=2,c;
c=func(a,&b);
b=func(c,&a);
a=func(b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
int func(int a,int *p)
{
a++;*p=a+2;
return(*p+a);
没读懂。请问谁能帮我解释一下
程序代码:#include<stdio.h>
int func(int a,int *p);/*调用func函数时传递的实参前一个为值,后一个为地址*/
viod main()
{
int a=1,b=2,c;
c=func(a,&b); /*传a的值,即2,传b的地址,此时func中的操作会改变变量b的值
,但不会改变变量a的值*/
b=func(c,&a); /*调用func,c的值不会变,a的值会改变*/
a=func(b,&c); /*调用func,b的值不会变,c的值会改变*/
printf("a=%d,b=%d,c=%d",a,b,c);
}
int func(int a,int *p)
{
a++;*p=a+2;
return(*p+a);
分清传参数时传的是值还是地址,传值的话,调用函数前后实参的值不变,传地址的话,实参值会改变