当前位置: 首页 > wzjs >正文

做企业网站的供应商成都网站seo推广

做企业网站的供应商,成都网站seo推广,html网站二维码悬浮怎么做,网站运营者在 C 里,static 关键字用途广泛,在不同场景下使用会有不同的含义和效果。下面详细介绍 static 修饰局部变量、全局变量、类中成员变量和类中成员函数的区别以及注意事项。 修饰局部变量 详细介绍 当 static 用于修饰局部变量时,该变量会被…

在 C++ 里,static 关键字用途广泛,在不同场景下使用会有不同的含义和效果。下面详细介绍 static 修饰局部变量、全局变量、类中成员变量和类中成员函数的区别以及注意事项。

修饰局部变量

详细介绍

当 static 用于修饰局部变量时,该变量会被存储在静态存储区,而非栈上。这意味着该变量只会被初始化一次,在函数调用结束后,其值不会被销毁,下次调用函数时,会保留上一次调用结束时的值。

使用示例

#include <iostream>
void func() {static int count = 0;std::cout << "Count: " << count << std::endl;count++;
}
int main() {func(); func(); func(); return 0;
}

在上述代码中,count 是 func 函数里的静态局部变量。首次调用 func 函数时,count 被初始化为 0 并输出,接着 count 自增为 1。再次调用 func 函数时,count 不会重新初始化,而是保留上一次的值 1,输出 1 后再自增为 2,依此类推。

注意事项

  • 初始化时机:静态局部变量的初始化发生在程序第一次执行到该变量的声明处,之后不会再进行初始化。
  • 生命周期:静态局部变量的生命周期是整个程序的运行期间,但它的作用域仍局限于定义它的函数内部。

修饰全局变量

详细介绍

static 修饰全局变量时,会改变该变量的链接属性,使其变为内部链接。这表明该变量只能在定义它的文件内被访问,其他文件无法通过 extern 关键字来引用它。

使用示例

// file1.cpp
#include <iostream>
static int globalStaticVar = 10;
void printGlobalStaticVar() {std::cout << "Global static variable: " << globalStaticVar << std::endl;
}
// file2.cpp
// 无法访问 file1.cpp 中的 globalStaticVar
int main() {printGlobalStaticVar(); return 0;
}

在这个例子中,globalStaticVar 是 file1.cpp 里的静态全局变量,只能在 file1.cpp 文件内被访问,file2.cpp 无法访问它。

注意事项

  • 链接属性:静态全局变量的内部链接属性可以避免命名冲突,因为不同文件中的静态全局变量即使名称相同,也不会相互影响。
  • 作用域:静态全局变量的作用域是定义它的文件,在该文件内的任何函数都可以访问它。

修饰类中成员变量

详细介绍

当 static 用于修饰类的成员变量时,该成员变量会被所有类的对象共享,而不是每个对象都有一份副本。静态成员变量存储在静态存储区,并且必须在类外进行初始化。

使用示例

#include <iostream>
class MyClass {
public:static int staticMemberVar;
};
// 在类外初始化静态成员变量
int MyClass::staticMemberVar = 20;
int main() {MyClass obj1, obj2;std::cout << "Static member variable of obj1: " << obj1.staticMemberVar << std::endl;std::cout << "Static member variable of obj2: " << obj2.staticMemberVar << std::endl;obj1.staticMemberVar = 30;std::cout << "Static member variable of obj2 after modification: " << obj2.staticMemberVar << std::endl;return 0;
}

在上述代码中,staticMemberVar 是 MyClass 类的静态成员变量,obj1 和 obj2 共享这一个变量。修改 obj1 的 staticMemberVar 值,obj2 的 staticMemberVar 值也会随之改变。

注意事项

  • 初始化:静态成员变量必须在类外进行初始化,且初始化时不需要再使用 static 关键字。
  • 访问方式:可以通过类名加作用域解析运算符 :: 来访问静态成员变量,也可以通过对象来访问,但推荐使用类名访问,以明确表示这是一个静态成员。

修饰类中成员函数

详细介绍

static 修饰类的成员函数时,该函数同样属于类,而不是某个具体的对象。静态成员函数没有 this 指针,因此不能访问非静态成员变量和非静态成员函数,但可以访问静态成员变量和静态成员函数。

使用示例

#include <iostream>
class MyClass {
public:static int staticMemberVar;static void staticMemberFunc() {std::cout << "Static member variable: " << staticMemberVar << std::endl;}
};
// 在类外初始化静态成员变量
int MyClass::staticMemberVar = 40;
int main() {MyClass::staticMemberFunc(); return 0;
}

在这个例子中,staticMemberFunc 是 MyClass 类的静态成员函数,通过类名直接调用该函数,它可以访问静态成员变量 staticMemberVar。

注意事项

  • this 指针:静态成员函数没有 this 指针,所以不能访问非静态成员。
  • 调用方式:可以通过类名加作用域解析运算符 :: 来调用静态成员函数,也可以通过对象来调用,但推荐使用类名调用,以明确表示这是一个静态成员函数。

综上所述,static 关键字在不同场景下的使用有着不同的效果和用途,理解这些区别并注意相应的事项,有助于正确使用 static 关键字来实现所需的功能。

http://www.dtcms.com/wzjs/408751.html

相关文章:

  • 网站建设应急处置方案seo及网络推广招聘
  • 营销咨询公司经营范围站内关键词排名优化软件
  • 网站必须做301重定向吗廊坊seo排名公司
  • 网络营销常用的方法包括seo顾问咨询
  • 网站详情页怎么做企业网站推广方案设计毕业设计
  • 网站首页制作代码seo职位具体做什么
  • 饿了么网站开发费用提升关键词排名软件哪家好
  • 怎么在.Net中做团购网站广州seo托管
  • seo做的好的网站恩城seo的网站
  • 建站公司哪个平台最好推广优化方案
  • 哪个网站有上门做指甲珠海seo快速排名
  • 如何做色流量网站互联网营销师题库
  • 网站域名属于哪里管有什么功能
  • 网站优化 检测响应速度百度导航是哪个国家的
  • 浦城 网站 做专业的seo搜索引擎优化培训
  • 网站替换图片怎么做短视频营销方式有哪些
  • 网页版千图网信息流优化师
  • 政府网站建设招标标书百度推广联系人
  • 国内做香港视频网站有哪些百度免费安装下载
  • 建立手机个人网站seo优化是啥
  • 西安网站制作顶尖考研比较厉害的培训机构
  • 购物商城有哪些宁波seo网络推广咨询热线
  • 微店网站建设网站优化建设
  • 网站配色方案今日新闻最新头条
  • 响应式网站开发asp合肥网站制作公司
  • 旅游酒店网站建设百度推广账号注册流程
  • 幼儿园网站怎么做成品在线视频免费入口
  • 调兵山网站建设杭州seo关键词优化公司
  • 做游戏网站在哪里找企业网络推广计划
  • 住房和城乡建设部2019年安全生产工作要点seo搜索引擎优化服务