作业帮 > 综合 > 作业

#includeint x1=30,x2=40;void sub(int x,int y){x1=x;x=y;y=x1;

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/16 15:18:32
#include
int x1=30,x2=40;
void sub(int x,int y)
{
x1=x;x=y;y=x1;
}
void main()
{
int x3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf("%d,%d,%d,%d",x3,x4,x1,x2);
}
运行结果是10,20,40,40.
#includeint x1=30,x2=40;void sub(int x,int y){x1=x;x=y;y=x1;
int x1=30,x2=40;
void sub(int x,int y)
{
x1=x;x=y;y=x1; // x,y值 交换,并且x1=x ,由于没有 返回值, 所以只有 那个
//全局 变量x1的 值 保留了下来
}
void main()
{
int x3=10,x4=20;
sub(x3,x4); // x1=x3=10 ,
sub(x2,x1); // // x1=x2=40 ,
// 最后结果x2,x3,x4值都没变只有 x1=x2=40 ,
printf("%d,%d,%d,%d",x3,x4,x1,x2);
}
再问: 就是x1的返回值是40,还有点不明白。 “ // x,y值 交换,并且x1=x ,由于没有 返回值, 所以只有 那个 //全局 变量x1的 值 保留了下来” 那为什么X1返回值是40呢?
再答: 在 sub 函数里 你又没定义 x1 ,所以 这个 x1 就是外面定义的 全局变量, 第一次 调用 函数 我都 写了 x1=x3=10 , 第二次调用 函数 我也写了 x1=x2=40 , 你都没看吧?