两道题做错了,请大家帮忙解释一下,谢谢。
1.#include <stdio.h>
#include <stdlib.h>
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);
printf("%d%d\n",c,d);
system("pause");
return 0;
}
这个我运行了,是得56,但是我算得257,它们不是传值了吗?
2.
#include <stdio.h>
#include <stdlib.h>
main()
{
union myun{
struct{int x,y,z;}u;
int k;
}a;
a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;
printf("%d\n",a.u.x);
system("pause");
return 0;
}
我认为是4,怎么最后运行结果是0的?