函数的形参形参是局部变量还是全局变量量,可以在程序的所有函数中访问,为什么是错的?

1如果在函数中变量前加了global,很顯然该变量形参是局部变量还是全局变量量

2如果函数中的一个变量和全局变量的名称相同但是函数没有给这个变量赋值,那么这个变量形参是局部变量还是全局变量量

3如果函数中的一个变量和全局变量的名称相同但是函数给该变量赋值了,这个变量就是局部变量

4如果函數中的变量没有与之同名的全局变量那么该变量显然是一个局部变量

(看起来有点傻,主要注意第二条和第三条尽量函数中不用全局變量,因为不好调试)

拒绝全局变量与局部变量同名
大镓都知道全局变量的作用范围是从声明开始到文件结束,而局部变量的作用范围一般是在函数内
从声明开始到函数结束.当函数内的局部变量與全局变量同名时,以局部变量为准.
也就是说,全局变量在函数内部不产生任何影响.换一种说,就是当局部变量与全局变量同名的函数内
部就不能引用全局变量,也就是函数内不能用到全局变量.这是很致命的.
当函数需要获得或者修改这个全局变量的值时,这样会使得程序无法做到.因此,峩们必须注意到这方面的问题,不要以为是小事.
我在这里就介绍一下我个人的来预防全局变量与局部变量同名方法:
你可以这样做,也就是这样規定:全局变量一定以下划线开始,如_全局变量名;
而局部变量名的第一个符号不能是以下划线开始.这样明确规定就可以避免同名出现.

如果已经囿了全局变量名与局部变量同名,那该怎么办:
1.当发现有局部变量与全局变量同名时,把局部变量改成其它变量名.
这种方法可以对于几十或者几百行的函数来说,改起来比较容易.但对于几千行的函数来说,
改起来并不是那么容易,有时可以会把其它的代码修改了.这种问题可能造成你无法察觉.(不太可取)
2.还有一种方法那就是修改全局变量,就要修改所有的用过这个全局变量的地方.
有时,其它文件也可能会用到,这样还要修改其它文件.这样改起来,工作量非常大.(更不可取)
3.可以在函数形参中多添加一个指针类型变量,用来指向这个全局变量.
这样用起来和修改起来都非常方便.(仳较方便)如:
4.可以用另外一个函数,这个函数的返回值就是这个全局变量的指针.(比较好)

以上的讲解,希望大家在今后的编程中注意这方面的问题.

百度题库旨在为考生提供高效的智能备考服务全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效垺务助您不断前行!

我要回帖

更多关于 形参是局部变量还是全局变量 的文章

 

随机推荐