永发信息网

main(){int x=1;void f1(),f2();f1();f2(x);printf("x=%d\n",x);}void f1(void){int x=3; pr

答案:3  悬赏:20  手机版
解决时间 2021-11-15 21:24
  • 提问者网友:夢醒日落
  • 2021-11-15 15:23
main(){int x=1;void f1(),f2();f1();f2(x);printf("x=%d\n",x);}void f1(void){int x=3; printf(x"x=%d\t
最佳答案
  • 五星知识达人网友:舊物识亽
  • 2021-11-15 17:02
#include "stdio.h"
#include "conio.h"
main()
{
int x=1;
void f1(),f2();
f1();
f2(x);
printf("x=%d\n",x);
getch();
}
void f1(void)
{
int x=3;
printf("x=%d\t",x);
}
void f2(int x)
{
printf("x=%d\t",++x);
}

首先,你提供的代码 printf(x"x=%d\t,x);这句错了,正确代码如上修改
代码的执行从main()函数开始,执行,首先调用函数f1();这个没什么说的直接输出函数内部的局部变量x=3;
接着调用函数f2(int x);这个由于x是传入刚开始定义的变量(int x=1;),是一个整形变量,是值类型,传入x=1;然后执行函数f2() 的表达式++x;(++x)相当于x=x+1;然后输出x=2;最后输出开始定义的变量x=1;虽然x传入函数f2()内部改变为x=2;但是由于x是值类型,所以外部定义的x的值并未改变,最终输出的还是最初定义的值x=1;

所以最终的输出为:x=3,x=2,x=1;
全部回答
  • 1楼网友:话散在刀尖上
  • 2021-11-15 18:51
- -!有点混乱啊!
  • 2楼网友:渡鹤影
  • 2021-11-15 17:58
朋友能不能注意一下代码的格式?没法看下去了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯