南京江宁交友群:C语言~~~~~填空

来源:百度文库 编辑:高校问答 时间:2024/05/05 04:16:27
#include<stdio.h>
sub(x,y,z)
int x,y,*z;
{*z=y-x;}
main()
{
int a=1,b=2,c=3;
sub(a,b,&a);
sub(b,a,&b);
sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c) ;
前两个值,我算出来了,最后一个不知道怎么得的-2

sub(a,b,&a); //a=b-a即a=2-1=1
sub(b,a,&b); //b=a-b即b=1-2=-1
sub(a,b,&c); //c=b-a即c=-1-1=-2

正确的答案应该是:1,-1,-2
因为你在函数中使用了指针*Z,他在调用过程中,改变了相应变量的值。

我知道你这道题的意思,是求他们的地址的差
答案我知道就是a,b,c,原来你输入的值 1,2,3,
因为他们的地址没有发生变化!

在第三个式中的a是第一个式中的&a的值。b同理。