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

太原网站建设找山西云起时宣传型网站建设

太原网站建设找山西云起时,宣传型网站建设,西安网站建设制作价格低,暴雪vp(永久免费)加速器下载在 C 里,static 是一个用途广泛的关键字,在不同场景下有不同含义,下面为你详细介绍: 1. 全局变量前的 static 当 static 用在全局变量前时,它会改变变量的链接属性。 默认全局变量:默认的全局变量具有外…

在 C++ 里,static 是一个用途广泛的关键字,在不同场景下有不同含义,下面为你详细介绍:

1. 全局变量前的 static

static 用在全局变量前时,它会改变变量的链接属性。

  • 默认全局变量:默认的全局变量具有外部链接属性,这意味着在一个文件中定义的全局变量可以在其他文件中通过 extern 关键字声明后使用。
  • 静态全局变量:在全局变量前加上 static 关键字后,变量变为静态全局变量,具有内部链接属性,只能在定义它的文件中使用,其他文件无法访问。

示例代码

// file1.cpp
#include <iostream>// 静态全局变量
static int staticGlobalVar = 10; // 普通全局变量
int globalVar = 20; void printStaticGlobalVar() {std::cout << "Static global variable: " << staticGlobalVar << std::endl;
}// file2.cpp
#include <iostream>
// extern int staticGlobalVar; // 错误,无法在其他文件中访问静态全局变量
extern int globalVar;int main() {// std::cout << staticGlobalVar << std::endl; // 错误std::cout << "Global variable: " << globalVar << std::endl;return 0;
}

2. 局部变量前的 static

static 用于局部变量时,它会改变变量的存储方式和生命周期。

  • 普通局部变量:普通局部变量存储在栈上,在函数调用结束后会被销毁。
  • 静态局部变量:静态局部变量存储在全局数据区,只在第一次调用函数时初始化,之后再次调用函数时,静态局部变量会保留上一次调用结束时的值。

示例代码

#include <iostream>void staticLocalVariableExample() {static int staticLocalVar = 0; // 静态局部变量int normalLocalVar = 0; // 普通局部变量std::cout << "Static local variable: " << staticLocalVar << std::endl;std::cout << "Normal local variable: " << normalLocalVar << std::endl;staticLocalVar++;normalLocalVar++;
}int main() {staticLocalVariableExample();staticLocalVariableExample();return 0;
}

3. 函数前的 static

static 用于函数前时,它会改变函数的链接属性。

  • 默认全局函数:默认的全局函数具有外部链接属性,可以在其他文件中通过 extern 关键字声明后调用。
  • 静态函数:在函数前加上 static 关键字后,函数变为静态函数,具有内部链接属性,只能在定义它的文件中调用,其他文件无法访问。

示例代码

// file1.cpp
#include <iostream>// 静态函数
static void staticFunction() {std::cout << "This is a static function." << std::endl;
}// 普通函数
void normalFunction() {std::cout << "This is a normal function." << std::endl;
}// file2.cpp
#include <iostream>
// extern void staticFunction(); // 错误,无法在其他文件中调用静态函数
extern void normalFunction();int main() {// staticFunction(); // 错误normalFunction();return 0;
}

4. 类的静态成员变量

类的静态成员变量属于整个类,而不是类的某个对象,所有对象共享同一个静态成员变量。

  • 存储位置:静态成员变量存储在全局数据区,不随对象的创建和销毁而分配和释放内存。
  • 初始化:静态成员变量必须在类外进行初始化。

示例代码

#include <iostream>class MyClass {
public:static int staticMemberVar; // 类内声明静态成员变量int normalMemberVar;MyClass(int value) : normalMemberVar(value) {}
};// 类外初始化静态成员变量
int MyClass::staticMemberVar = 0; int main() {MyClass obj1(10);MyClass obj2(20);obj1.staticMemberVar = 30;std::cout << "obj2.staticMemberVar: " << obj2.staticMemberVar << std::endl; // 输出 30return 0;
}

5. 类的静态成员函数

类的静态成员函数属于整个类,而不是类的某个对象,可以直接通过类名调用,也可以通过对象调用。

  • this 指针:静态成员函数没有 this 指针,因此不能访问类的非静态成员变量和非静态成员函数,只能访问类的静态成员变量和静态成员函数。

示例代码

#include <iostream>class MyClass {
public:static int staticMemberVar;int normalMemberVar;static void staticMemberFunction() {staticMemberVar = 10; // 可以访问静态成员变量// normalMemberVar = 20; // 错误,不能访问非静态成员变量std::cout << "Static member function called. staticMemberVar: " << staticMemberVar << std::endl;}
};int MyClass::staticMemberVar = 0;int main() {MyClass::staticMemberFunction(); // 通过类名调用静态成员函数MyClass obj;obj.staticMemberFunction(); // 通过对象调用静态成员函数return 0;
}

综上所述,static 关键字在不同的位置有不同的含义,主要体现在改变变量和函数的链接属性、存储方式、生命周期以及实现类的共享成员等方面。


文章转载自:

http://UZcWZoEb.mbhdL.cn
http://9s2RwgJE.mbhdL.cn
http://KtWGJ4Wi.mbhdL.cn
http://MYziI8cx.mbhdL.cn
http://vx9AxgfE.mbhdL.cn
http://7bf6I5jL.mbhdL.cn
http://rlZzEDTp.mbhdL.cn
http://5Tao1K60.mbhdL.cn
http://2SQOim54.mbhdL.cn
http://li0Sgxbh.mbhdL.cn
http://Sw6ENssT.mbhdL.cn
http://A6nG2J2E.mbhdL.cn
http://z3E7zuj2.mbhdL.cn
http://cJPWa3QJ.mbhdL.cn
http://5eMNeInP.mbhdL.cn
http://Tch1aOl6.mbhdL.cn
http://NMFuNNlU.mbhdL.cn
http://CvKrLcSq.mbhdL.cn
http://DKHCxENF.mbhdL.cn
http://AD6v5A4v.mbhdL.cn
http://Rsmcx2N7.mbhdL.cn
http://63iAt7UD.mbhdL.cn
http://6eJfU13I.mbhdL.cn
http://55BudPHU.mbhdL.cn
http://lCCms7mE.mbhdL.cn
http://qFdRPsVq.mbhdL.cn
http://N5PG2BT8.mbhdL.cn
http://p3upVeC3.mbhdL.cn
http://DJhyOxao.mbhdL.cn
http://ONGvrsot.mbhdL.cn
http://www.dtcms.com/wzjs/753349.html

相关文章:

  • 深圳网站营销推广公司做货源的网站
  • 不良网站举报中心官网做网站的群
  • php网站建设外国参考文献企业网站建设与推广方案实例
  • 制作网站的花多少钱对网站做数据分析
  • 国内网站空间推荐做网站盘锦
  • 网站常用架构二级注册建造师信息查询官网入口
  • 做网站创意是什么意思东莞在那里建个网站
  • 网站开发 需要用到什么软件有哪些网站建设费无形资产摊销
  • 国外做问卷网站中交路桥建设网站
  • 网站模板兼容手机端seo的工作内容
  • 网站建设app杭州公司官网制作教程
  • 山西省住房和城乡建设厅网站首页建立网站第一步怎么做
  • 自助建站seo长沙百度百科
  • 济宁苍南网站建设做网站需准备些什么
  • 网站流量用完wordpress 附件下载
  • 营销网站的功能网站制作培训费用
  • 电商网站的相同点中国农业科技推广网
  • 网站301重定向 注意事项ideo设计公司官网
  • 做版面的网站wordpress 开发插件
  • 网站开发实战教程wordpress 优惠插件
  • 温州网站建设服务中心南宁网站开发外包性价比
  • 个人网站需要多大的网速中国最新军事新闻报道
  • 中国建设银行嵊州市支行网站网站设计的时间计划
  • 微网站 .net微信数据统计小程序
  • 网站的视频历史权重查询
  • 廊坊酒店网站建设win7 添加asp网站
  • 如何做幸运28网站代理明星网页设计模板图片
  • 要建一个网站该怎么做上海跨境电商公司
  • 古镇建网站公司东营企业网站建设
  • 做甜品网站电子商务开发公司