你写的程序:
#include
int t(int x,int y,int cp,int dp)
{cp=x*x+y*y;
dp=x*x-y*y;}
main()
{int a=4,b=3,c=5,d=6;
t(a,b,c,d);
ptintf("%d%d",c,d)}
传递参数只是形参,并没有改变c和d的值!在内存中c和d还是原样,这点要注意啊!你的程序执行过程中没有改变c和d的值,所以输出仍然是5 6,参数应该用指针传递,这样才能真正改变c和d的值。还有你这个程序问题还挺多的!
我是这样改的,你参考一下你的哪里有问题:
#include
int t(int x,int y,int*cp,int*dp)
{*cp=x*x+y*y;*dp=x*x-y*y;}
int main() //最好用int main(),在哪个C或C++编译器中都没问题
{int a=4,b=3,c=5,d=6;
int*m=&c,*n=&d;
t(a,b,m,n);
printf("%d,%d",c,d);
return 0;}
在C语言中,形参与实参的传递方式是传值,改变形参的值,实参的值并不会改变。