【发布时间】:2021-01-19 11:06:34
【问题描述】:
我在学校有这个任务,我必须找到以下 C 代码的输出,并解释输出。
#include<stdio.h>
int i;
void fun1(void);
void fun2(void);
int main()
{
fun1();
fun2();
return 0;
}
void fun1(){
i=20;
printf("%d\t",i);
}
void fun2(){
int i=50;
printf("%d",i);
}
输出为 20 50 因为在 fun1() 中,全局变量“i”被赋值为 20 并被打印出来。而在 fun2() 中,变量 'i' 是一个局部变量,它被声明并初始化为 50,然后被打印出来。
出于好奇,我有以下问题,如何在 fun2() 中使用全局变量“i”? 一个简单的解决方案是简单地更改名称并避免整个事情。但是我的好奇心是由于Java,其中有一个关键字“this”来访问类变量而不是局部变量。
那么有什么办法可以在 C 中做到这一点?
【问题讨论】:
标签: c scope declaration