为了账号安全,请及时绑定邮箱和手机立即绑定

好几个问题!!!

为什么:

不加int ,main函数x输出50?

去掉x=100,if ,main函数都输出5?

去掉int x=10,x=100,if,main,fnl()都输出38?

x/2可以影响到fnl()?

正在回答

1 回答

int x=77;  标为x(1),它是整个程序的变量,全局变量

int x=10;  标为x(2),这是函数main() 中的全局变量,也是整个程序的局部变量

int x=100; 标为x(3),这是if语句中的全局变量,这也是整个程序的局部变量,但级别比x(2) 还低,被引用的范围更小。若写称 x=100;这就是给x(2)进行赋值,也就是说x(2)的值被改成100了,main()函数中使用x的位置,其值都是100


在main()函数中,运行到

fn1();

时,程序暂时跳出main()函数,去执行自定义函数fn1(),此时已经跳出了main()函数的范围,故x为x(1)的内容。


整个完整的程序中,虽然定义的变量都名为x,但对于计算机而言,是三个不同的变量,并且使用的范围也是不一样的。

int   是告诉计算机定义新变量的标识,同时确定数据类型,类似的还有char,short,long,float,double等。

9 回复 有任何疑惑可以回复我~
#1

weixin_慕尼黑2048433

fn1()不是还在main函数内吗?大神求解
2021-11-15 回复 有任何疑惑可以回复我~
#2

年少无知ing 回复 weixin_慕尼黑2048433

fn1()没有传递main内参数x,其内部运行执行全局x
2021-12-03 回复 有任何疑惑可以回复我~
#3

慕工程5522439 回复 年少无知ing

main内参数38,全局参数77,输出结果是38,这不就是执行了main内的参数x吗?
2022-10-19 回复 有任何疑惑可以回复我~
#4

慕工程5522439 回复 慕工程5522439

刚懂了,执行if函数是全局变量已经被改变,也就是说全局变量为38
2022-10-19 回复 有任何疑惑可以回复我~
#5

精慕门8497905 回复 weixin_慕尼黑2048433

计算机运行到17行后回调到fn1函数去执行fn1函数,已经跳出main函数啦
2023-11-06 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消
C语言入门
  • 参与学习       926028    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

好几个问题!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信