C语言中static的用法有哪些

C语言中的static关键字有很多用法,下面我们将详细介绍。

静态局部变量

1、1 定义

C语言中static的用法有哪些

在函数内部定义的变量称为局部变量,当函数调用结束后,局部变量会被销毁,而在函数外部定义的变量称为全局变量,全局变量的作用域是整个程序,如果需要在函数内部使用一个与外部作用域相关的变量,可以使用static关键字将其定义为静态局部变量。

include <stdio.h>
void func() {
    static int count = 0; // 静态局部变量
    count++;
    printf("count: %d
", count);
}
int main() {
    for (int i = 0; i < 5; i++) {
        func();
    }
    return 0;
}

输出结果:

count: 1

count: 2

count: 3

count: 4

count: 5

C语言中static的用法有哪些

1、2 特点

static局部变量的生命周期是整个程序运行期间,而不是函数调用期间。

static局部变量在函数调用之间保持其值不变。

static局部变量只能在声明它的函数内部访问。

静态全局变量

2、1 定义

在函数外部定义的变量称为全局变量,可以被程序内的任何函数访问,如果需要限制全局变量的作用域,可以使用static关键字将其定义为静态全局变量。

include <stdio.h>
static int global_var = 10; // 静态全局变量
void print_global_var() {
    printf("global_var: %d
", global_var);
}
int main() {
    print_global_var(); // 可以访问静态全局变量
    return 0;
}

2、2 特点

C语言中static的用法有哪些

static全局变量的作用域仅限于声明它的源文件。

static全局变量在程序运行期间只初始化一次。

static全局变量可以在多个源文件中共享,如果要在多个源文件中使用同一个静态全局变量,需要将其定义在一个单独的源文件中,并在其他源文件中使用extern关键字声明它。

静态函数

3、1 定义

使用static关键字修饰的函数称为静态函数,静态函数的作用域仅限于声明它的源文件,不能被其他源文件调用,静态函数可以访问静态局部变量和静态全局变量。

// file1.c
static void static_func() { // 静态函数
    printf("This is a static function.
");
}
// file2.c
extern void static_func(); // 在其他源文件中声明静态函数,但不能调用它(编译错误)

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/127931.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seoK-seo
Previous 2023-12-15 09:42
Next 2023-12-15 09:44

相关推荐

  • java中abstractmethoderror错误怎么解决

    java.lang.abstractMethodError错误通常在尝试调用抽象方法时抛出。此错误是在编译时本身识别的,如果在运行时抛出此错误,则该类必须不兼容(与先前存在的类不兼容)。解决java.lang.abstractMethodError错误的关键是确定出现错误的原因,并采取适当的措施来解决问题。

    2023-12-30
    0288
  • C语言中rapidxml怎么使用

    const char* xml = "C++ PrimerStanley B. Lippman2013";int type = node-˃type(); // 如果需要判断节点类型,可以使用type()方法,返回值为0表示元素节点,1表示文本节点等,DOCTYPE book [...]˃"或类似内容). } else if { // 如果是处理指令节点。const char* data =

    2023-12-15
    0140
  • c语言怎么删除字符串中的指定字符

    C语言删除字符串中指定字符需遍历字符串,逐个比较并替换。

    2024-01-02
    0633
  • c语言入门一般多久

    接下来,给各位带来的是c语言入门要多久的相关解答,其中也会对c语言入门一般多久进行详细解释,假如帮助到您,别忘了关注本站哦!请问大神,零基础学习c语言,要要多久呢?1、零基础学编程主要看自己想要学到什么程度。如果是全面了解基础知识,最快也要两个月。还想进一步学习,掌握更多的技能,希望能找到一份好工作的话,最快也要半年。2、时间会长点,如果你英语好,数学逻辑性好,专心学那么学c语言只需要半年或几个月就可以了。如果英语一般那么一年就可以,其实学程序也需要天赋和钻研精神,但是从纯C的控制台应用到带有界面的应用程序也需要一定的时间去摸索。

    2023-11-18
    0417
  • c语言怎么实现随机抽奖程序运行

    C语言实现随机抽奖程序抽奖程序是一种常见的编程实践,可以用于各种场景,如游戏、活动等,本文将介绍如何使用C语言实现一个简单的随机抽奖程序,我们将使用rand()函数生成随机数,然后根据随机数的范围进行抽奖,1、引入头文件我们需要引入头文件stdio.h和stdlib.h,这两个头文件分别包含了输入输出和随机数生成的函数。

    2023-12-28
    0221
  • fgets函数及其用法,C语言fgets函数详解

    在C语言中,fgets函数是一个非常重要的输入函数,它用于从指定的文件中读取一行字符串,这个函数的原型如下:char *fgets(char *str, int n, FILE *stream);参数说明:str:这是一个字符指针,用于存储从文件中读取的字符串,注意,这个字符串的末尾会自动添加一个'\0'字符,所以不需要手动添加。n:……

    2024-01-25
    0371

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入