C语言之详解静态变量static

C语言之详解静态变量static

在C语言中,关键字static可以用于修饰全局变量,局部变量和函数,其作用分别如下:

1. 修饰全局变量

  • 在全局变量前加上static关键字,表示该变量具有静态存储期和静态链接属性。
  • 在同一文件中的其他函数中不能访问该变量。
  • 只能被定义变量的函数访问。
  • 被初始化为0,除非在定义时显式初始化。
static int a;  // 声明一个静态全局变量

int main() {
    a = 1; // 正确,只能被定义变量的函数访问
    func();
    return 0;
}

void func() {
    a = 2; // 错误,在同一文件中的其他函数中不能访问该变量
}

2. 修饰局部变量

  • 在局部变量前加上static关键字,表示该变量具有静态存储期。
  • 该变量在程序编译时已经被初始化,并且只会在程序运行时被初始化一次,这也就是说局部静态变量的初始化只会在程序的第一次调用时进行。
  • 只能在定义该变量的函数中访问,但他的生命周期与程序相同。
void func() {
    static int a = 0; // 声明一个静态局部变量
    a++;
    printf("%d ", a);
}

int main() {
    func(); // 1
    func(); // 2
    func(); // 3
    return 0;
}

3. 修饰函数

  • 在函数的声明和定义前加上static关键字,表示该函数只在定义它的文件可见,也称为内部函数。
  • 禁止在其他文件中调用该函数。
static void func() {
    printf("I am a static function");
}

int main() {
    func(); // 正确,只能在定义函数的文件中调用
    return 0;
}

以上就是C语言static关键字的使用方法,希望可以对你有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言之详解静态变量static - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Lua教程(一):在C++中嵌入Lua脚本

    下面我将为您详细讲解“Lua教程(一):在C++中嵌入Lua脚本”的完整攻略。 一、基本了解 首先,我们需要了解一些基本知识。Lua是一种轻量级的脚本语言,它具有简单易学、快速、可嵌入等特点。Lua被广泛应用于游戏开发、Web应用、嵌入式设备等领域。而在C++中嵌入Lua脚本,则可以更加灵活地实现代码的运行时修改和扩展。 二、环境搭建 在开始嵌入Lua脚本之…

    C 2023年5月23日
    00
  • C程序读取键盘码的方法

    C程序要想读取键盘码有以下几种方法: 使用getc()函数读取单个字符 可以使用stdlib.h库中的getc()函数来读取单个字符。 int getc(FILE *stream); 这个函数可以从指定的流中读取下一个字符,可以从键盘输入流stdin中读取字符。 示例1:下面这个程序可以读取用户从键盘输入的字符,并将其输出到屏幕上。 #include &lt…

    C 2023年5月23日
    00
  • 详解C语言之预处理(下)

    下面是“详解C语言之预处理(下)”的完整攻略。 理解C语言中的宏定义 在C语言中,宏定义是一种预处理指令,可以在编译代码前将它们替换为指定的代码片段。这个过程称为宏展开。宏定义的语法格式如下: #define 宏名 宏体 其中,宏名是由字母、数字和下划线组成的标识符,不能以数字开头,而宏体是要替换的代码片段。宏定义还可以带有参数,这种宏定义称为带参数的宏定义…

    C 2023年5月22日
    00
  • 关于C语言操作符的那些事(超级全)

    关于C语言操作符的那些事(超级全) 前言 C语言中操作符是非常重要的一部分,了解操作符的含义和使用方法可以帮助我们更好地理解和编写C语言程序。本文将介绍常见的C语言操作符,分为算术操作符、关系操作符、逻辑操作符、位操作符、赋值操作符、条件操作符和其他操作符七类。 算术操作符 算术操作符用于执行算术计算,包括加、减、乘、除、取模等。 加号 +:用于加法运算 减…

    C 2023年5月23日
    00
  • jsoup 框架的使用小结

    下面来详细讲解一下“jsoup 框架的使用小结”的完整攻略。 什么是jsoup框架 jsoup是一个Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了类似于JQuery的CSS选择器,用于从HTML解析出DOM,也可用于HTML的提取和转换。 jsoup框架的安装和使用步骤 安装方式 直接从官网下载jar包:https://jso…

    C 2023年5月23日
    00
  • C 判断

    当在编写 C 语言程序时,我们可能需要使用判断语句来根据条件执行不同的代码块。C 中有三种不同的判断语句:if 语句、switch 语句以及三目运算符。在这里,我将详细讲解这三种判断语句的使用方法和语法规则。 if 语句 if 语句允许我们对一个条件进行测试,并根据测试结果决定是否执行某个代码块。其基本语法如下: if (条件) { 需要执行的代码块 } 其…

    C 2023年5月10日
    00
  • office2019最新激活秘钥分享 附office2019免费版+激活工具

    Office2019激活秘钥分享及激活工具使用攻略 本文将为大家提供Office2019最新激活秘钥、Office2019免费版及激活工具的下载和使用方法,方便用户体验并提高工作效率。 Office2019最新激活秘钥分享 Office2019是微软推出的办公软件套装,被广泛用于商业、教育以及家庭等不同领域。以下是最新的Office2019激活秘钥: 键值1…

    C 2023年5月22日
    00
  • c++ 如何在libuv中实现tcp服务器

    C++ 中通常使用 libuv 库来实现 TCP 服务器。下面是使用 libuv 库实现 TCP 服务器的完整攻略。 准备工作 首先需要做的是安装 libuv 库,并配置好 C++ 项目使其能够使用该库。Windows 操作系统可以直接下载预编译的库,然后在项目设置中配置库的路径和头文件路径。Linux 操作系统可以通过包管理器进行安装。 创建 TCP 服务…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部