static是全局变量还是局部变量
时间: 2023-05-11 21:02:29 浏览: 310
static既可以是全局变量也可以是局部变量,它的作用是控制变量的作用域和生命周期。在函数内部使用static修饰的变量是局部静态变量,它的生命周期会持续到程序结束,但作用域仅限于函数内部;在函数外部使用static修饰的变量是全局静态变量,它的作用域仅限于当前文件,其他文件无法访问。
相关问题
statac 全局变量、局部变量、函数与普通全局变量、局部变量、函数static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
static 全局变量与普通全局变量的区别是,static全局变量可以在另一个文件中被访问,而普通全局变量只能在定义它的文件中被访问。 static局部变量和普通局部变量的区别是,static局部变量的值会在函数调用之间保持不变,而普通局部变量的值会随着函数调用而发生变化。static函数与普通函数的区别是,static函数只能在定义它的文件内被访问,而普通函数可以在另一个文件中被访问。
5、Static全局变量与普通全局变量的区别;Static局部变量与普通局部变量的区别;static函数与普通函数区别; C++ 类中static成员与非static成员变量区别。(10 分)
1. Static全局变量与普通全局变量的区别:
- 静态全局变量的作用域仅限于定义该变量的源文件内,也就是说,在同一源程序的其他源文件中不能使用它;
- 普通全局变量则可以被同一程序中的所有源文件共享。
2. Static局部变量与普通局部变量的区别:
- 静态局部变量在程序执行过程中只被创建一次,不会随着函数的退出而被销毁,仍然保存在内存中,下次调用函数时可以继续使用;
- 普通局部变量在每次函数调用时都会被重新创建,函数退出时会被销毁。
3. Static函数与普通函数区别:
- 静态函数只能在当前文件中使用,其他文件无法调用该函数;
- 普通函数可以被其他文件调用。
4. C++ 类中static成员与非static成员变量区别:
- 非static成员变量属于对象级别,每个类对象都有一份,不同对象的该变量值可以不同;
- static成员变量属于类级别,所有类对象共享一份,无论创建多少个类对象,该变量只有一份。而且,static成员变量必须在类外初始化,因为它不属于任何一个对象。
总的来说,static修饰的变量和函数都具有“静态”的特性,这种特性使得它们在内存中只有一份拷贝,可以被多次调用或共享使用。
阅读全文