第二种,声明在所有函数外面的变量。
int global = 100;
int main(int argv, char const* args[])
{
}
int unc(void)
{}
这里的global变量它在所有的函数外面,所以当前.c文件中所有的函数都可以使用它。
还有一点比较重要的东西:如果一个变量的作用域内还有其他的作用域,那么在这个作用域里面也是也是用这个变量的。
举个例子,区长的作用域是整个郫都区,而红光镇是在郫都区内,所以区长自然可以管理红光镇的事务。
这也解释了为什么global能够被当前.c文件里的所有函数使用,因为这些函数的范围在global作用域中。
那么刚刚main和add中都存在名为sum的变量问题也解决了,因为这两个sum根本就在是各种的作用域中声明的。其实重点是在同一个作用域中声明同名变量,注意,是声明,而不是不能有,这点一定要注意!
也就是说下面这种是不行的
void unc(void)
{
int a = 10;
int a = 10;
}
而下面两种是可以的:
void uncA(void)
{
int a = 10;
}
void uncB(void)
{
int b = 10;
}
或者这种也是可以的:
int a = 10;
void uncD(void)
{
int a = 20;
}
一下子和你们说了这么多,估计你们很难理解,不过只要多看看,再结合实际运用,应该就能够理解了。
简单的来说,作用域你可以理解为一个变量的地盘,当要用这个变量的时候在这个变量的地盘中,那就没有问题,如果不在这个变量的地盘中,那就不能使用。
还有就是无论什么时候都不能让电脑疑惑,就像一个作用域中你如果声明了两个名字相同的变量,计算机就懵了,因为它也不知你到底是要使用哪一个。」
老爹补充道。
「那上面最后一种情况计算机难道不会疑惑么?它怎么知道到底使用哪个a呢?」
本章已完 m.3qdu.com