2016 - 2024

感恩一路有你

c语言变量作用域 C语言全局变量和局部变量会冲突吗?为什么?

浏览量:3106 时间:2021-03-12 04:31:00 作者:admin

C语言全局变量和局部变量会冲突吗?为什么?

C语言中,看你怎么安放全局变量和局部变量了。如果你把全局变量和局部变量放在一个代码文件内,那么就是冲突的。这么说不明显,我写个C程序代码你就知道了,如下图所示:



在这段C程序中,我在主函数main之外定义了一个全局变量para,并且给了一个初始值1。在C程序主函数main里面,我又定义了一个变量para,跟主函数之外的那个para是同名。

这里,C程序主函数外面的那个变量生命周期在整个代码中有效,而主函数的这个变量只在主函数内有效。

这也就是说,在C程序主函数里操作para变量,实际上操作的是主函数中的变量,外面的para变量值还是1。在这段C程序中,main函数中的para变量把外面的变量para给遮住了。

所以,同学们在学习C语言时,一定要注意这个全局变量被局部同名变量遮住的问题,同时也要了解变量的作用域和生命周期。

学习c语言之前,可以学哪些相关的基础?买书的话,有没有什么好的推荐?

C语言不是一个独立的课程,要想学好C语言,有许多的基础课程需要学习,否则你在学习C语言过程中会感到吃力。要打好的基础大概有以下几个:

一、计算机组成

这是最简单的基础了。

  • 计算机组成分为显示器、键盘、鼠标,这在C语言中叫做输入输出设备。有许多的C语言IO函数库是用来操作输入输出设备的。
  • 计算机主机有CPU,内存,外存的概念。C语言中有寄存器变量,这是跟CPU有关的;有指针概念,这是跟内存有关的;有内存分配函数,这是跟内存有关的;有文件IO函数库,这是用来读取写入外存的函数,是跟外存有关的。
二、计算机导论

这也是必须要学习的基础。

  • 进制。C语言的数据可以用二进制表示,也可以用八进制表示,也可以用十六进制表示。如果不懂进制,学这些你会一头雾水。
  • 流程图。C语言写代码时一般都会画算法流程图,了解自己的程序会如何一步一步的执行才能开始写代码。流程图的概念很重要。
  • 算法。算法是C语言代码的灵魂,写代码表面是在写代码,实际是在写一个算法。没有算法,写C语言代码那就是自娱自乐,不解决实际问题。
三、数学知识

都说数学是计算机的基础,这一点也不错。比如C语言中有一个经典的程序是找素数、找合数等,这些都是数学概念。如果都不知道素数、合数的数学定义,C语言代码压根就写不出。

上面只是浅薄地说了下学习C语言需要的基础,我们还可以继续交流。至于学习书籍,我之前推荐了几本,可以看看我以前的问答。

c语言变量作用域 局部变量作用域 静态作用域

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。