首页 > 其他分享 >C语言static篇

C语言static篇

时间:2023-05-29 20:00:24浏览次数:41  
标签:函数 int C语言 static printf 修饰 变量

C语言static篇

变量

#include<stdio.h>
void func()
{
    int a = 0;
    printf("%d\t", a);
    static int b;
    printf("%d\n", b);
}
int main()
{
    func();
    return 0;
}
#include<stdio.h>
void func()
{
    int a = 1;
    printf("%d\t", a++);
    static int b=1;
    printf("%d\n", b++);
}
int main()
{
    for(int i=0;i<5;i++)
       func();
    return 0;
}

以上两个代码程序,说明以下几点内容:

1、缺省状态下变量默认修饰符为auto,static修饰的变量自动初始化为零、

2、static修饰的变量只会初始化一次,可以看到b变量只被赋值过一次为一后就不再初始化

3、而与其相对的auto修饰的变量,则是即用即开,用完就销,数据存储在栈上

4、static修饰的变量则存储在data段

实际上,static修饰的变量还具有以下几点作用:

1、首先是static可以起隐藏作用,普通的全局变量具有全局可见性,可以在不同的源文件中被调用,但是全局变量一旦被

static修饰,那么其仅能对本源文件可见

2、另外,被static修饰的全局变量也允许其他源文件命名相同的全局变量

函数

在函数的返回类型前加上static,就是静态函数。其特性如下:

  • 静态函数只能在声明它的文件中可见,其他文件不能引用该函数

  • 不同的文件可以使用相同名字的静态函数,互不影响

非静态函数可以在另一个文件中直接引用,甚至不必使用extern声明

 

标签:函数,int,C语言,static,printf,修饰,变量
From: https://www.cnblogs.com/alexlance/p/17441516.html

相关文章

  • 二叉排序链表C语言代码实现
    #include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedefstructBSTNode{intdata;structBSTNode*lchild;structBSTNode*rchild;}BSTNode,*BSTree;BSTNode*InitNode(intdata){BSTNode*node=(BSTNode......
  • C语言课程设计题目[2023-05-29]
    C语言课程设计题目[2023-05-29]C语言课程设计题目一、设计要求与设计报告设计要求1.任意选定以下一个题目完成2.模块化程序设计3.锯齿型程序书写格式4.必须上机调试通过设计报告格式1.设计目的2.总体设计(程序设计组成框图、流程图)3.详细设计(模块功能说明(如函数功能、入......
  • c语言,函数的址传递例子
    编码如下:#include<stdio.h>voidswap(int*x,int*y){inttmp;tmp=*x;*x=*y;*y=tmp;};intmain(){inta=4;intb=5;printf("befer\n");printf("a=%d\n",a);printf("b=%d\n",b);swap(&am......
  • django 中的collectstatic
    django中的collectstatic在Django中,"collectstatic"是一个管理命令,用于收集和复制项目中的静态文件到一个指定的静态文件目录,以便于部署。当你开发一个Django项目时,通常会使用许多静态文件,如CSS样式表、JavaScript文件、图像等。这些文件通常存储在每个应用程序的"static"目录......
  • com.alibaba.fastjson.JSONException: can‘t create non-static inner class inst
    在类修饰符前面加上static即可 ......
  • c语言代码怎么输入文字
    在C语言中,可以使用printf函数来输出文本信息到终端。如果需要从用户那里获取输入的文本信息,则可以使用scanf函数。以下是一个简单的示例代码:#include<stdio.h>intmain(){charname[20];printf("请输入您的姓名:");scanf("%s",name);printf("您好,%......
  • 用C语言为python写C扩展2
    spammodule.c#include<Python.h>staticPyObject*spam_system(PyObject*self,PyObject*args){constchar*command;intsts;if(!PyArg_ParseTuple(args,"s",&command))returnNULL;sts=system(command);......
  • C语言编程—枚举
    枚举是C语言中的一种基本数据类型,用于定义一组具有离散值的常量。它可以让数据更简洁,更易读。枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。定义一个枚举类型,需要使用enum关键字,后面跟着枚举类型的名称,以及用大括号{}括起来的一组枚举常量。......
  • 初识C语言:从菜鸟变大牛(3)
    上篇我们讲解了变量、常量、字符串、转义字符、注释。那么我们继续来学习C语言的一些基本知识,同样,知识也是点到为止,不会很深入,后面我会发布更深层次的知识。(注:本篇的内容稍稍有点多,大家可以分批学习)1.选择语句在C语言中有时有多种分支,我们就需要用到选择语句在C语言中有两种常见的......
  • 常见项目——C语言实现2048小游戏(附源码和可执行文件)
    1.实现效果展示1.1界面图片说明:进入下面各页面后均可通过按键“q”来退出。1)菜单页2)开始游戏页3)游戏规则页4)按键说明页5)退出游戏页1.2视频展现戳此处查看视频演示1.3游戏源码及可执行文件(exe)下载支持作者,请关注公众号“优秀物联人”回复“2048小游戏”获取下......