main(){int x=1;void f1(),f2();f1();f2(x);printf("x=%d\n",x);}void f1(void){int x=3; pr
答案:3 悬赏:70 手机版
解决时间 2021-04-02 12:45
- 提问者网友:献世佛
- 2021-04-01 21:04
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-04-01 22:09
#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;
#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-04-02 00:35
- -!有点混乱啊!
- 2楼网友:孤老序
- 2021-04-01 23:23
朋友能不能注意一下代码的格式?没法看下去了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯