1.存储位置不同
静态变量:存储在全局数据区(静态数据区)。
非静态变量称为动态变量,存储在内存弹出数据区。
2.不同的有效期
动态变量:取决于您定义它们的位置。例如,如果您在函数中定义变量,那么一旦超出其范围,该变量就会失效。功能。
静态变量:仅在程序结束时释放。
3.范围不同
动态变量:与第二点类似,可以根据定义的位置来确定。
静态变量:在当前文件中有效。
详细说明;
静态变量的作用;
1.对于静态全局变量,源文件是静态的。因为声明的文件级变量和函数的作用域仅限于文件内(仅在文件内部可见),即内部链接,所以可以用来限制变量的作用域。
2.对于静态局部变量,在函数内静态声明的变量的作用域与自动局部变量的作用域相同(即作用域仅在函数内),但存储空间为静态分配,而不是通过分配自动获取的默认值。
因此,不同区域的存储是不同的(一般情况下,静态分配时,存储在编译时被划分为程序数据段,一次分配对整个进程有效。另外,使用自动分配时,存储空间是在调用堆栈上分配的,并且仅在调用期间分配和释放),因此两次调用之间的变量值始终一致。请注意,静态局部变量只能初始化一次,这是由编译器保证的。
3.对于静态成员变量,在C++中,在类定义中静态声明的成员变量属于类变量。也就是说,它们在所有类实例之间共享。。
参考来源;-静态变量
-动态变量
上一篇:4g内存能玩战地1吗
下一篇:手机内存大小一览表