1个回答
展开全部
动态变量这个概念好像没什么人用啊。
之所以称其为“静态变量”,是因为它是和全局变量,代码段等一样都存放在堆中,因此在程序编译的时候已经知道这个变量存放在虚存的哪个位置了。然而动态的变量,以局部变量为例,是在函数执行过程中实时向内存栈申请的。所以在编译的时候无法确定这个变量会被放在内存的什么地方。
那为什么不只使用全局变量代替静态变量呢,反正这两个看上去差不多……静态变量和全局变量的区别是,如果有函数内的静态变量,虽然它也会在编译时就被分配一块内存(即使不调用),但是它的生命周期仅限于当前函数,在函数外调用会由编译器报错,这提供了一个保护机制。
另外,静态函数也有特别的作用,就不细说了。
之所以称其为“静态变量”,是因为它是和全局变量,代码段等一样都存放在堆中,因此在程序编译的时候已经知道这个变量存放在虚存的哪个位置了。然而动态的变量,以局部变量为例,是在函数执行过程中实时向内存栈申请的。所以在编译的时候无法确定这个变量会被放在内存的什么地方。
那为什么不只使用全局变量代替静态变量呢,反正这两个看上去差不多……静态变量和全局变量的区别是,如果有函数内的静态变量,虽然它也会在编译时就被分配一块内存(即使不调用),但是它的生命周期仅限于当前函数,在函数外调用会由编译器报错,这提供了一个保护机制。
另外,静态函数也有特别的作用,就不细说了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询