C语言高手来看看,看程序写结果,告诉我步骤

#include<stdio.h>intx1=30,x2=40;voidsub(intx,inty){x1=x;x=y;y=x1;}intmain(){intx3=10,... #include<stdio.h>
int x1=30,x2=40;
void sub(int x,int y)
{
x1=x;
x=y;
y=x1;
}
int main()
{
int x3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf("%d,%d,%d\n",x3,x4,x1,x2);
return 0;
}
嗯printf里面少写了个%d 程序结果是10 20 40 40,我咋觉得是10 20 30 30啊
展开
 我来答
百度网友b36f72a
2013-05-09 · TA获得超过1417个赞
知道小有建树答主
回答量:744
采纳率:0%
帮助的人:537万
展开全部
#include<stdio.h>
int x1=30,x2=40;//此时全局变量变成10;
void sub(int x,int y)
{
x1=x; //把传进来的值赋值给全局变量x1;
x=y;//这一段和下面一段不用管,形参x跟y值的改变是不改变实参x3,跟x4的值的,只要注意全局变量x1跟x2即可。
y=x1;
}
int main()
{
int x3=10,x4=20;
sub(x3,x4);//sub(10,20),进入sub函数。
sub(x2,x1);//sub(40,30)进入sub函数,把40赋值给全局变量x1,那么x1=40了;
printf("%d,%d,%d\n",x3,x4,x1,x2);//所以x3=10,x4=20,x1=40,x2少%d没输出。
return 0;
}
又是你啊。。。又在做题了?
Heaven葬礼丶
2013-05-09 · 超过20用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:44.5万
展开全部
x1 , x2 , x3, x4 4个变量

sub(x,y) 因为x,y是形参不影响原来的变量值

第一个sub得出 x1=10, 第二个sub 得出 x1=40. (因为x1是全局变量可以被sub影响,sub中没有其他变量不影响其他变量。)

所以x1 =40 其他不变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cc21aee
2013-05-09 · TA获得超过2041个赞
知道小有建树答主
回答量:1273
采纳率:100%
帮助的人:1202万
展开全部
x1x2是全局变量,形参的改变会改变它的值,儿x3x4是局部变量,形参的改变不会改变它的值。建议你认真看看形参和实参。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
009螃蟹
2013-05-09 · TA获得超过177个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:116万
展开全部
输出的结果为 x1 = 40其他的还是原来的值,,没有改变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞将军kill
2013-05-09
知道答主
回答量:32
采纳率:0%
帮助的人:11.7万
展开全部
x3x4不能换x1x2可以,输出那少了一个%d
x1是外部变量在函数声明整个文件都适用所以能换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式