classTest{public:Test():a(0){}enum{size1=100,size2=200};private:constinta;//只能在构造函数初始化列表中初始化staticintb;//在类的实现文件中定义并初始化conststaticintc;//与 static const int c;相同。};intTest::b=0;//static成员变量不能在构造函数初始化列表中初始化,因为它不属于某个对象。
作用域:被static修饰的变量的作用域是限定在定义它们的函数内部。 可见性:这些变量只能在定义它们的函数内部访问,对于其他函数而言是不可见的。 生命周期:被static修饰的变量在程序的整个执行期间都存在,但是它们的值在函数调用之间保持不变,因此可以看作是一个全局变量,但作用域被限制在了函数内部。
➤ const和static const:为“只读”之意,或当作“固定”的意思,仅在声明中使用,标识一个变量在编译期间不可被修改。需要注意的是,const只是编译器限制不可在语法层面改动,它本身并不是存放在内存的常量区域,而是存储在栈区(局部)或静态存储区(非局部)。const可提高程序的健壮性,减少出错的可能性,常用于修饰...
二、控制可见性和连接类型 : static更有一个作用,他会把变量的可见范围限制在编译单元中,使他成为一个内部连接,这时,他的反义词为”extern”. static作用分析总结:static总是使得变量或对象的存储形式变成静态存储,连接方式变成内部连接,对于局部变量(已是内部连接了),他仅改动其存储方式;对于全局变量(已是静态存储...
C++ const和static详解 ### const关键字的作用 📏 修饰成员变量:当const修饰成员变量时,表示该变量是一个常量,不能被修改。 修饰成员函数:const修饰成员函数的作用是防止该函数修改类的成员变量。需要注意的是,C语言中没有将const放在函数声明后面的习惯。 修饰函数返回值:const修饰函数的返回值,可以保护指针或引用...
static还可以声明函数,eg:static int fun(int a, int b)称fun为内部函数,或者静态函数。内部函数的使用只限于所在文件,而且不同文件中的同名内部函数互不干扰。 register变量:一般变量的值都是存储在内存中,(当程序需要用到哪一个变量的值,由控制器发出指令将内存中该变量的值送到运算器,完了如果需要存数,再...
1)static修饰的变量存到静态存储区,该变量所占空间会一直保存到程序退出 ,只有第一次调用该函数的时候才会等于初始值,以后该变量都会保存改动后(最后一次调用)的值,不同于 auto 变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值。应该慎重使用静态变量,因为静态变量会一直占据固定的内存。
classTest{public:Test():a(0){}enum{size1=100,size2=200};private:constinta;//只能在构造函数初始化列表中初始化staticintb;//在类的实现文件中定义并初始化conststaticintc;//与 static const int c;相同。};intTest::b=0;//static成员变量不能在构造函数初始化列表中初始化,因为它不属于某个对象。
面试官:C++中,static和const的关键字有哪些用法?我:satic关键字主要用在以下三个方面:用在全局作用域,修饰的变量或者函数为静态的,限制在本文件内使用。方法内修饰修饰静态局部变量,在第一次访问的时候初始化。内类修饰成员函数和成员变量,此函数或变量由类持有,而非类的对象持有。我:const关键字主要也有...
在C#中,const 和 static 都用于定义类成员,但有着不同的用途和行为。1. const:用于声明编译时常量。常量在编译时被解析并替换为其实际值,因此它们的值在运行时是不可改变的。常量必...