ZKX's LAB

对C语言中的四种存储类别的理解 静态存储不允许

2020-10-03知识9

为什么在调用函数时定义数组为静态存储方式,不能用可变长数组 定义就是要为变量分配存储空间,既然设计到分配空间,就要知道为变量分配多大的空间所以变长的数组是不能定义出来的可以在程序运行时动态申请出来 貌似fread会读取。

对C语言中的四种存储类别的理解 静态存储不允许

全局变量都是静态存储吗 首先,全局变量不可能是静态的。static 只是定义局部变量,使其在函数调用结束后不释放存储空间,使下一次调用该函数时继续使用上一次调用的结果,这点经常用到。再者,对于全局变量来说,如果在其定义后的接下来的程序中,某函数用到了与其同名的变量,则在该变量所在函数中,全局变量被屏蔽,无法使用。当然全局变量在实质上是静态存储的!我的意思是它无法用static声明,就算在某些编译器上是允许的,但没有任何意义。1、全局变量所占存储空间在整个程序运行过程中都不会释放,而声明变量为static的目的恰恰就是为了达到这点,因此是否声明为static无意义。2、”用static声明局部变量“的目的是使局部变量在调用完函数后仍不释放空间,而全局变量完全能做到这点。(当然,能不用试最好不要去用全局变量,它会造成很多干扰)3、全局变量当然可以在“它所作用的区域里的”任何一个函数中改变它的值,但前提是:在哪个函数中没有与它名称相同的变量(这其实就是全局变量的问题之一),否则就会造成”屏蔽。全局变量的作用区域只在它所声明的位置之后的所有程序中!

对C语言中的四种存储类别的理解 静态存储不允许

对C语言中的四种存储类别的理解,C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要。

对C语言中的四种存储类别的理解 静态存储不允许

#函数声明#作用域#stm32#局部变量#静态方法

qrcode
访问手机版