0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【笔记】static 在C语言中的用法

撞上电子 2023-06-12 10:03 次阅读

当 `static` 关键字用于不同的上下文时,其含义和作用也会有所不同。下面是更多示例代码,展示了 `static` 在不同用法下的具体效果:

示例1:静态局部变量

#include void increment() {static int count = 0;count++;printf("Count: %d\n", count);}int main() {increment(); // 输出:Count: 1increment(); // 输出:Count: 2increment(); // 输出:Count: 3return 0;}

在这个示例中,`count` 是一个静态局部变量。它被声明为 `static`,意味着它在函数调用之间保持持久性,并且其初始值只在第一次函数调用时初始化。每次调用 `increment()` 函数时,`count` 的值递增并打印。

示例2:静态全局变量

#include static int globalVar = 10;void function() {printf("Global variable: %d\n", globalVar);}int main() {function(); // 输出:Global variable: 10return 0;}

在这个示例中,`globalVar` 是一个静态全局变量。它被声明为 `static`,意味着它的作用域仅限于当前文件,并且无法被其他文件访问。在 `function()` 函数中,可以直接访问和使用静态全局变量。

示例3:静态函数

#include static void staticFunction() {printf("Static function\n");}int main() {staticFunction(); // 输出:Static functionreturn 0;}

在这个示例中,`staticFunction()` 是一个静态函数。它被声明为 `static`,意味着它的作用域仅限于当前文件,无法被其他文件调用。


示例4:静态结构体成员

#include struct MyStruct {int x;static int y;};int main() {struct MyStruct obj;obj.x = 5;obj.y = 10; // 错误:无法在结构体中使用静态成员return 0;}

在这个示例中,`MyStruct` 结构体中的 `y` 成员被声明为静态。然而,C语言不允许在结构体中使用静态成员。

示例5:静态局部数组

#include void printArray() {static int arr[] = {1, 2, 3, 4, 5};int size = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");}int main() {printArray(); // 输出:1 2 3 4 5printArray();// 输出:1 2 3 4 5return 0;}

在这个示例中,`arr` 是一个静态局部数组。它被声明为 `static`,意味着它在函数调用之间保持持久性,并且其初始值只在第一次函数调用时初始化。每次调用 `printArray()` 函数时,都会打印相同的数组内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7596

    浏览量

    135943
  • static
    +关注

    关注

    0

    文章

    33

    浏览量

    10350
收藏 人收藏

    评论

    相关推荐

    C语言中的socket编程基础

    Socket编程简介 Socket是一种通信机制,允许程序之间进行通信。C语言中,socket编程是网络编程的基础。通过使用socket,程序可以发送和接收数据,实现不同计算机之间的通信
    的头像 发表于 11-01 16:51 218次阅读

    如何解决C语言中的“访问权限冲突”异常?C语言引发异常原因分析

    如何解决C语言中的“访问权限冲突”异常?C语言引发异常原因分析  C
    的头像 发表于 01-12 16:03 4824次阅读

    C语言中结构体能不能相加

    C语言中,结构体能不能相加?
    的头像 发表于 12-19 17:04 1194次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b>结构体能不能相加

    C语言-#和##的具体用法

    C语言中宏里面使用’#’和’##’有它非常神奇的作用。宏定义的替换的过程中,#号可以作为一个预处理运算符,把宏参数转换为字符串。##运算符则可以把两个宏参数组合在一起。下面就来说
    的头像 发表于 12-19 12:54 4765次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>-#和##的具体<b class='flag-5'>用法</b>

    c语言中逻辑真等价于什么

    C语言中,逻辑真等价于1。逻辑真可以理解为一个表达式、语句或条件的结果为真,即满足条件。计算机科学和编程中,逻辑真控制流语句、循环和条
    的头像 发表于 11-30 14:10 1952次阅读

    c语言中decimal的含义

    C语言中的“decimal”是一种数据类型,用于表示十进制数字。C语言中,常用的数据类型有整数类型(int)、浮点类型(float和dou
    的头像 发表于 11-30 10:57 2242次阅读

    c语言中a++是什么意思

    C语言中,a++是一个自增运算符,用于对a的值进行自增操作。它是一个简化的表达式,相当于将a的值加1,并返回自增前的值。 C语言中,自增运
    的头像 发表于 11-26 09:19 1.7w次阅读

    C语言中数组的用法

    C语言的数组是一种数据结构,它可以存储多个相同类型的数据,例如整数,字符,浮点数等。数组的每个元素都有一个索引,用来表示它在数组中的位置。数组的索引从0开始,也就是说,数组的第一个元素的索引是0,第二个元素的索引是1,以此类推。
    的头像 发表于 11-24 17:48 1220次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b>数组的<b class='flag-5'>用法</b>

    c语言中数组怎么定义

    C语言中,数组是一种用来存储相同类型元素的数据结构。它可以存储多个元素,并通过一个共同的名称来引用这些元素。数组是一种很重要的数据结构,可以用于解决很多实际的问题。 C
    的头像 发表于 11-24 10:11 2823次阅读

    \0c语言中怎么用

    是由贝尔实验室的Dennis Ritchie为了开发UNIX操作系统而设计的。它在20世纪70年代初首次出现,并迅速流行起来。C语言以其简洁、高效、低级别的特性成为了广泛使用的编程语言。 二、基本语法 注释
    的头像 发表于 11-24 09:59 2981次阅读

    scanfC语言中的作用

    scanfC语言中的作用  scanf是C语言中的输入函数,用于从标准输入设备(如键盘)读取数据,并将其存储到变量中。它是
    的头像 发表于 11-23 14:13 1270次阅读

    c语言中顺序结构的基本流程

    的语句组成,这些语句用于完成特定的任务或操作。C语言中,每个语句都以分号结束,多个语句可以用大括号括起来形成一个语句块。顺序结构中,每个语句都依次执行,按照代码的顺序执行,然后才会
    的头像 发表于 11-22 10:20 915次阅读

    C语言中如何实现注释

    C语言中,注释是用来增加代码可读性和注释过程和功能的文本。C语言中支持两种类型的注释:单行注释和多行注释。 单行注释以双斜杠(//)开始,
    的头像 发表于 11-22 10:17 1207次阅读

    c语言while中嵌套if循环

    中嵌套if语句的用法和好处。 一、C语言中的while循环和if语句 开始我们深入探讨while循环中嵌套if语句的细节之前,让我们首先回顾一下while循环和if语句的基本
    的头像 发表于 11-22 10:09 5527次阅读

    C语言for循环的用法和注意事项

    C 语言是一种广泛使用的编程语言,它具有简洁、高效、灵活的特点。C 语言中有很多控制流程的语句,其中 for 循环是一种常见的循环结构,可以
    的头像 发表于 11-20 18:27 2223次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>for循环的<b class='flag-5'>用法</b>和注意事项