C语言中的static的用法(超级详细)

article/2025/10/1 2:41:51

🌹作者:云小逸
📝个人主页:[云小逸的主页]
📝码云:云小逸 (YunXiaoYi003)
🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在!学会自己和解,与过去和解,努力爱自己。希望春天来之前,我们一起面朝大海,春暖花开!🤟
👏专栏:C语言初阶👏日常杂记👏

static

static 一般用于修饰局部变量,全局变量,函数;

(1)static修饰局部变量:

#include<stdio.h>
void test()
{int a = 1;a++;printf("%d   ", a);
}
int main(void)
{int i = 0;while (i <= 10){test();i++;}return 0;
}

此时结果为2 2 2 2 2 2 2 2 2 2   

将int a=1;改为static int a=1; 后: 

结果为2 3 4 5 6 7 8 9 10

是因为改为static int a=1;后,出了作用域,不会销毁a的值,想要理解其本质,首先先看一下这个图:

 static修饰局部变量时,会影响局部变量的生命周期,本质上改变了局部变量的存储位置,生命周期变长,为整个周期。静态局部变量存储于进程中的全局数据区。

(2).static修饰全局变量

首先我们要知道全局变量的属性:全局变量具有外部链接属性。而static修饰全局变量时,这个全局变量的外部链接属性变为内部链接属性,是其他源文件(.c)文件就可以再使用这个全局变量了。则使用时我们会感觉到该全局变量作用域变小。 

 

 

(3).static修饰函数

此类情况类似于static修饰全局变量。函数同样具有外部属性。而static修饰函数时,这个函数的外部链接属性变为内部链接属性,是其他源文件(.c)文件就可以再使用这个函数了。则使用时我们会感觉到该函数作用域变小。

总结:

static修饰变量

   a. 函数中局部变量

      声明周期延长:该变量不随函数结束而结束

      初始化:只在第一次调用该函数时进行初始化

      记忆性:后序调用时,该变量使用前一次函数调用完成之后保存的值

      存储位置:不会存储在栈上,放在数据段

   b. 全局变量

     改变该变量的链接属性,让该变量具有文件作用域,即只能在当前文件中使用

   c. 修饰变量时,没有被初始化时会被自动初始化为0

  2. static修饰函数

   改变该函数的链接属性,让该函数具有文件作用域,即只能在当前文件中使用

 

  最后如果觉得我写的还不错,请不要忘记点赞,收藏,加关注哦(。・ω・。)


http://chatgpt.dhexx.cn/article/KI7AUrf7.shtml

相关文章

JQuery HTML5 验证表单

HTML5新增属性验证表单内容 <body><!-- HTML5验证的特性 &#xff1a;required"required"必填number,url,email,search....--><form action"#" method"post"><input type"search" id"uname" value&quo…

jQuery表单验证实例 / 包含用户名、密码、住址、邮箱验证

jQuery表单验证实例 / 包含用户名、密码、住址、邮箱验证 如下图 别忘了引入jQuery框架&#xff01;&#xff01;&#xff01; 话不多说直接先上jQuery部分代码&#xff1a; <script type"text/javascript">$(document).ready(function(){var tip1 "&…

jquery表单验证(jQuery表单验证插件Validation怎么下载)

如何用jquery的form插件验证表单 你好&#xff0c;插件无非就是集成所有可能出现的情况&#xff0c;通过配置来调用验证&#xff0c;比如jqueryvalidate插件&#xff0c; 插件内部实现一些非空&#xff0c;正则格式&#xff0c;邮箱&#xff0c;url等判断&#xff0c;你要做的就…

jQuery实现表单的验证

要求&#xff1a;技术要求&#xff08;htmlcssjquery&#xff09; 1. 完成页面布局&#xff08;页面布局合理、样式和图片一致、代码无误各&#xff09; 2. 用jquery验证Email地址是否有效&#xff0c;要求Email地址中必须包含符号&#xff0c;如果Email地址有效则显示”正确…

jQuery--表单校验

jQuery -- 表单校验 表单验证String对象和表单验证有关的成员正则表达式表单选择器表单验证事件和方法 表单验证 为什么要进行表单验证&#xff1f; 无论是动态网站&#xff0c;还是其他B/S结构的系统&#xff0c;都离不开表单。 表单作为客户端向服务器端提交数据的主要载体&a…

jQuery表单验证插件

表单验证插件 表单验证规则 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><style>#myform label.error{color: #FF0000;}</style><script src"js/jquery-3.3.1.js"><…

jQuery基础之表单验证

前言 在学习jquery-validate.js时的一些的记录 正文 在使用jquery-validate.js插件时可以做一些初始化配置 在初始化jquery-validate.js对象的时候&#xff0c;将外部的一些配置和该插件内部的一些默认配置合并在一起&#xff0c;如果有相同的配置&#xff0c;前者覆盖后者…

JQuery表单校验

JQuery表单验证 常用表单主要包括&#xff1a;用户名–密码–确认密码–邮箱–验证码 初学阶段我们忽略验证码的真实性&#xff0c;仅对齐进行非空验证 表单代码 <div id"content"><div class"login_form"><div class"login_box&quo…

jQuery表单验证(Validate)使用方法

表单的校验是jQuery给页面开发者带来极大便利的功能之一&#xff0c;无论是在校大学生还是已经上班的工程师&#xff0c;都可以了解一下表单校验的基本功能。 目录 1.先来一张简单的表单2.引入需要用到的jQuery3.指定需要验证的内容4.如何自定义报错信息的位置5.如何添加其他的…

jQuery插件及表单验证

一、自定义插件 前提&#xff1a;引入jquery-3.3.1.js <script src"js/jquery-3.3.1.js" type"text/javascript"></script> 1、$.extend(对象1&#xff0c;对象2) 对象1继承对象2 /*自定义插件*/$(function(){//$extend(对象1,对象2) 对象1…

jq表单验证

<!DOCTYPE html> <html><head><title>手工实现表单验证</title><meta charset"utf-8" /><script src"scripts/jquery-1.11.3.js"></script></head><body><fieldset><legend>用户…

用jQuery实现表单验证

转载自&#xff1a;https://www.cnblogs.com/hellowzl/p/5612122.html ——选自《锋利的jQuery》&#xff08;第2版&#xff09;第5章的例题 5.1.5 表单验证 表单&#xff08;form&#xff09;作为 HTML 最重要的一个组成部分&#xff0c;几乎在每个网页上都有体现&#xff0…

jQuery-表单验证使用方法

目录 一、表单验证单词二、思维导图三、表单验证的使用方法四、复选框全选和取消全选 一、表单验证单词 二、思维导图 三、表单验证的使用方法 代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title><…

jQuery-表单校验

为什么要表单验证 1.减轻服务器的压力 2.保证输入的数据符合要求 常用的表单验证 日期格式表单元素是否为空用户名和密码E-mail地址身份证号码 表单选择器 语法 描述 示例 :input 匹配所有input、textarea、select和button 元素 $("#myform :input")选取…

jQuery实现表单验证

1.基于html表单&#xff0c;利用jQuery实现表单验证功能。 2.html基本结构和样式&#xff1a; 3.html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <h…

JQuery-表单验证

1.什么是表单验证&#xff1f; 表单验证是javascript中的高级选项之一。 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。 2.为什么表单验证&#xff1f; 减轻服务器的压力 。 保证输入的数据符合要求。 3.案例 实现表单验证的案例在这里用GiWiFI页面…

SurfaceTexture

SurfaceTexture 类是在 Android 3.0 中引入的。就像 SurfaceView 是 Surface 和 View 的结合一样&#xff0c;SurfaceTexture 是 Surface 和 GLES texture 的粗糙结合&#xff08;有几个警告&#xff09;。 当你创建了一个 SurfaceTexture&#xff0c;你就创建了你的应用作为消…

UserWarning: findfont: Font family [‘sans-serif‘] not found. Falling back to DejaVu Sans

Python数据可视化分析时出现UserWarning: findfont: Font family [‘sans-serif’] not found. Falling back to DejaVu Sans…报错 原因&#xff1a;库中没有关于’Microsoft YaHei’的引用 换一种字体记一下 如 字体中文名称字体英文名称黑体SimHei宋体SimSun新宋体NSimSum…

The tag <fonta> is unrecognized in this browser. If you meant to render a React component, start its

写react 组件样式 styled-components 报错 是因为react 千万记住开头字母是大写 由于这个f小写了 但是这个是当成了一个组件在用 所以会一直报错 改为大写就会解决了 小伙伴们千万注意 react的项目组建开头必须大写

createfont(CreateFontIndirectW)

如何用CreateFont创建制定点大小的字符 import java.awt.Font; import java.io.File; import java.io.FileInputStream; public class Loadfont public static Font loadFont(String fontFileName, float fontSize) //第一个参数是外部字体名&#xff0c;第二个是字体大小 File…