求助,学习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);分清传参数时传的是值还是地址,传值的话,调用函数前后实参的值不变,传地址的话,实参值会改变