c和c++中的static有什么区别
时间: 2023-12-23 08:04:58 浏览: 107
C/C++中的static和extern关键字
在C语言和C++语言中,关键字static的用法有所不同。
在C语言中,static关键字有以下几种用法:
1. 在函数内部使用static修饰局部变量,使得变量的作用域仅限于函数内部,不会被其他函数所访问。同时在程序运行期间,该变量的内存地址是不变的。
2. 在全局变量前面使用static修饰,使得全局变量的作用域仅限于当前文件,不会被其他文件所访问。
3. 使用static修饰函数,使得函数的作用域仅限于当前文件,不会被其他文件所访问。这种函数通常被称为静态函数。
在C++语言中,static关键字的用法更加丰富,主要有以下几种用法:
1. 在类内部使用static修饰成员变量或成员函数,使得它们不属于任何一个对象,而是属于整个类。静态成员变量在全局数据区分配内存,静态成员函数没有this指针,只能访问静态成员变量和函数。
2. 在函数内部使用static修饰局部变量,使得变量的生命周期在函数调用结束后不会结束,而是一直存在于程序的静态数据区,下次再次调用该函数时,该变量的值仍然存在。
3. 在全局变量前面使用static修饰,使得全局变量的作用域仅限于当前文件,不会被其他文件所访问。
总的来说,C语言和C++语言中的static关键字主要用于控制变量或函数的作用域和生命周期。在C++中,static还可以用于定义类的静态成员变量和静态成员函数。
阅读全文