static的作用

  1. 修饰局部变量(函数内部)

静态局部变量,只在程序第一次调用时初始化1次,生命周期贯穿整个程序,不会函数退出就销毁,作用域依旧仅限函数内部。

c

void test()

{

static int a = 0; // 仅初始化一次

a++;

printf("%d\n",a);

}

普通局部变量:每次进函数重新创建、退出销毁;static局部变量保存上次的值。

  1. 修饰全局变量

限制作用域,这个全局变量只能在当前.c/.cpp文件内访问,别的源文件无法extern引用。

不加static的全局变量,是整个工程可见。

c

static int g_val = 10; // 仅本文件可见

  1. 修饰函数

static函数,仅当前源文件内部可用,其他文件不能调用,隐藏函数,避免多文件函数名冲突。

c

static void func()

{

}

C++额外独有

  1. 修饰类的成员变量

属于类本身,不属于某个对象。所有对象共享同一份static成员变量,需要在类外初始化。

cpp

class A{

public:

static int num;

};

  1. 修饰类的成员函数

静态成员函数,没有this指针,只能访问static成员,不需要创建对象就可以调用。

相关推荐
GitCode官方2 小时前
从大语言模型到具身智能:百度百舸 LoongForge 入驻 AtomGit
人工智能·react native·百度·harmonyos·atomgit
Easy_API9 小时前
2.8万亿参数,编程反超GPT-6 Astra:Kimi K3.1 Pro把开源模型推到了哪一步
大数据·人工智能·gpt·深度学习
GlobalInfo9 小时前
2026年机器人多指灵巧手市场分析报告——涵盖行业调查、趋势分析与发展前景
大数据·人工智能·microsoft·微服务·机器人
紧跟先前的步伐9 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
C^h9 小时前
c++ string
开发语言·c++
听风说ml10 小时前
socket编程 【C语言】
c语言·udp·tcp·socket编程
释厄62310 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
raindayinrain10 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
吠品10 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
学逆向的10 小时前
C++ 合并命名空间
开发语言·c++·网络安全