static用法

2023-10-31

本用法针对于C语言,文中所用代码在Qt中均运行成功。

static 主要用法:修饰变量、修饰函数

1、修饰变量:形成动态变量和静态变量

  • 动态变量(不使用static)
#include<stdio.h>

void myauto()
{
  int a = 0;
  printf("a = %d\n",a);
  a++;
}


int main()
{
  int i;
  for(i = 0; i < 5; i++)
  {
    myatuo();
 
  }

}

程序的输出结果为 :
a = 0
a = 0
a = 0
a = 0
a = 0

  • 静态变量
    首先只要整个程序开始执行之后,静态变量是一直存在的,不消失的;
    其次,静态变量值初始化一次,即static int a = 0;语句只执行一次
#include<s tdio.h>

void mystatic()
{
  static int a = 0;//整个进程运行过程中一直有效,是在静态区,但是只能mystatic函数内部访问使用
  printf("a = %d\n",a);
  a++;

}

int main()
{
  int i = 0;
  for(i = 0; i < 5; i++)
  {
    mystatic();
  }
}

程序运行结果为:
a = 0
a = 1
a = 2
a = 3
a = 4

  • 总结
    static定义的静态局部变量:

    • 静态局部变量在函数内存定义的,其生存周期为整个源程序,但是作用域同自动变量,只能在定义该变量的函数内部使用;退出该函数之后该变量仍然存在只是不能使用;
    • 静态变量未赋初值的系统自动赋值0;其他自动变量赋值则具有随机性;

    static定义的静态全局变量:

    • 仍然采用静态存储方式,但是作用域为定义该变量的源文件内部 ,非静态的全局变量的作用域为这个源程序(包括多个源文件)

2.static修饰函数

使用static定义的函数只能在本文件中被调用,在源程序的其他文件中不可以被调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

static用法 的相关文章

  • 在两个 .cpp 文件之间定义全局变量 [重复]

    这个问题在这里已经有答案了 如何在 A cpp 和 B cpp 之间共享 全球化 bool 变量 其中它们都不包含其他 h 文件 他们有其他联合头文件 但彼此没有 我可以在这些共享标头中定义全局变量吗 Thanks 我可以在这些共享标头中定
  • ProtoBuf-net AsReference 需要 Activator.CreateInstance 中的公共构造函数吗?

    在我的两门课程中 看起来像这样 最少 using System using System Collections Generic using System Collections using System ComponentModel us
  • 此插件导致 Outlook 启动缓慢

    我正在使用 C NET 4 5 开发 Outlook Addin 项目 但部署后 有时 Outlook 会禁用我的插件 并显示此消息 这个插件导致 Outlook 启动缓慢 我不知道我的插件出了什么问题 这只有很少的代码 并且ThisAdd
  • 可选参数“必须是编译时常量”

    我有一个类分为两个部分文件 如下所示 public partial class PersonRepository BaseRepository
  • 禁用除滚动之外的 DataGridView

    我如何配置 datagridview 以便用户只能在行中移动并使用滚动 而没有其他 如果我禁用网格不允许我使用滚动 将您的 datagridview 设置为只读 这将禁用任何编辑 dataGridView1 ReadOnly true 在你
  • TestMethod:异步任务 TestSth() 不适用于 .NET 4.0

    我正在尝试使用 NET 4 0 BCL Async 和 MsTest 运行异步测试方法 看来这个设置不能处理 测试方法 异步Task测试Sth 由于测试用例资源管理器中缺少条目 将签名更改为异步后void 我可以运行测试用例 但结果错误 根
  • C++ 模板参数类型推断

    我有一个这样的C 模板 template
  • 未定义异常变量时通过引用捕获

    捕获异常时 标准指导是按值抛出 按引用捕获 据我了解 这有两个原因 如果由于内存不足异常而引发异常 我们将不会调用可能终止程序的复制构造函数 如果异常是继承层次结构的一部分 我们可能会对异常进行对象切片 如果我们有一个场景 我们没有在 ca
  • Windows 程序如何临时更改其时区?

    我写了一个函数来返回time t与给定日期的午夜相对应的值 当给定日期没有午夜时 它返回最早可用的时间 例如 当埃及进入夏令时时 这种情况就可能发生 今年 时间更改于 4 月 29 日晚上午夜生效 因此时钟直接从 23 59 转到 01 0
  • 首先EntityFramework数据库 - 类型映射 - 将binary(8)从SQL映射到C#中的int

    在 SQL 内部 我有一个主键为二进制 8 的表 当我使用该表添加到我的模型中时Update Model from Database我可以看到该列有 type Binary 在 C 中 我将该列设为byte 我可以将该列映射到 int 吗
  • 使用 Microsoft Graph 创建用户

    如何使用 Microsoft graph 创建用户 因为我在保存过程中遇到了权限失败的问题 我确实有几个问题 在图中调用创建用户 API 将在哪里创建用户 是在 Azure AD 还是其他地方 我尝试通过传递 json 和必需的标头来调用创
  • 在非指针变量和类成员上放置 new

    考虑以下示例 include
  • 在 C# 中生成随机值

    如何使用以下命令生成随机 Int64 和 UInt64 值RandomC 中的类 这应该可以解决问题 这是一个扩展方法 因此您可以像调用普通方法一样调用它Next or NextDouble上的方法Random目的 public stati
  • IEnumerable.比带中断的 for 循环更快吗?

    我们的代码打开表单时遇到了一些缓慢的情况 这可能是由于for循环与break这需要很长时间才能执行 我把它切换到IEnumerable Any 并看到表格很快打开 我现在试图弄清楚是否单独进行此更改会提高性能 或者是否正在访问Product
  • 如果数组为空,LINQ 返回 null

    public class Stuff public int x other stuff 我有一个IEnumerable
  • 使 C# 编译器相信执行将在成员返回后停止

    我认为目前这是不可能的 或者这是否是一个好主意 但这是我刚才正在考虑的事情 我使用 MSTest 对我的 C 项目进行单元测试 在我的一项测试中 我执行以下操作 MyClass instance try instance getValue
  • Intel 和 AMD 处理器有相同的汇编程序吗?

    C语言被用来编写Unix以实现可移植性 使用不同编译器编译的同一个C语言程序会产生不同的机器指令 为什么 Windows 操作系统能够在两者上运行Intel https en wikipedia org wiki Intel and AMD
  • 无效的模板相关成员函数模板推导 - 认为我正在尝试使用 std::set

    我有一个继承自基类模板的类模板 基类模板有一个数据成员和一个成员函数模板 我想从我的超类中调用它 我知道为了消除对成员函数模板的调用的歧义 我必须使用template关键字 我必须明确引用this在超级班里 this gt base mem
  • 请解释为什么Java和C对此代码给出不同的答案

    public class Test public static void main String args int i 10 i i System out println value of i is i 输出是 10 当我在中执行类似的代码
  • XmlDocument Save 使文件保持打开状态

    我有一个简单的 C 函数 可以创建一个基本的 XML 文件并保存 private void CreateXMlFile string Filename string Name string Company XmlDocument doc n

随机推荐

  • 数据的存储方式(Parquet、ORC)

    文章目录 数据的存储方式 按行存储 按列存储 Parquest 文件布局 概念 并行处理的单元 配置 Row Group Size 行组的大小 Data Page Size 数据页的大小 元数据 数据页 Hive下的Parquet实验 Pa
  • postgresql:字符串累加拼接(聚合分组拼接)

    问题 有时 想要将某字段在查询列表的时候 按分组的不同 同组字符串累加拼接起来 原表数据内容如下 想要达到的目标结果 是把cdate tno的字符串分组累加拼接起来 如下 解决方案 使用聚合函数 string agg 示例如下 SELECT
  • 基于self-attention的BILSTM时间序列预测Python程序

    基于self attention的BILSTM时间序列预测Python程序 特色 1 单变量 多变量输入 自由切换 2 单步预测 多步预测 自动切换 3 基于Pytorch架构 4 多个评估指标 MAE MSE R2 MAPE等 5 数据从
  • 微信公众号测试号url和token绑定失败解决问题

    前提准备 在本地搭建一个本地服务器 具体查看如何搭建一个本地服务器 首先 我们需要到natapp获取一个信道 博主这里买的是vip1型的 当然也可以使用免费型的 根据需要选择 完了之后 去 我的隧道 查看购买的信道 复制里面的authtok
  • Java之包装类的算法小题的练习

    算法小题 练习一 需求 键盘录入一些1 10日之间的整数 并添加到集合中 直到集合中所有数据和超过200为止 代码示例 public class Test1 public static void main String args 键盘录入一
  • 修改Git远程地址 git config remote.origin.url "https://..."

    仓库管理 添加或指定远程仓库地址 git remote set url origin https git config remote origin url https 删除 git remote rm origin
  • python基础--函数入门与进阶

    函数入门与进阶 函数参数的使用 位置参数 关键字参数 默认参数 可变参数 关键字可变参数 函数的相互调用 函数的作用域 全局作用域 局部作用域 数据的打包与拆包 数据打包 数据的拆包 lambda函数 递归 前言 此专栏文章是专门针对Pyt
  • 高并发编程学习(2)——线程通信详解

    为获得良好的阅读体验 请访问原文 传送门 前序文章 高并发编程学习 1 并发基础 https www wmyskxz com 2019 11 26 gao bing fa bian cheng xue xi 1 bing fa ji chu
  • [Python图像处理] 九.形态学之图像开运算、闭运算、梯度运算

    该系列文章是讲解Python OpenCV图像处理知识 前期主要讲解图像入门 OpenCV基础用法 中期讲解图像处理的各种算法 包括图像锐化算子 图像增强技术 图像分割等 后期结合深度学习研究图像识别 图像分类应用 希望文章对您有所帮助 如
  • python设置坐标轴刻度值字体大小_python 设置xlabel,ylabel 坐标轴字体大小,字体类型...

    本文介绍了python 设置xlabel ylabel 坐标轴字体大小 字体类型 分享给大家 具体如下 coding utf 8 import matplotlib pyplot as plt 数据设置 x1 0 5000 10000 15
  • hdoj 1052 Tian Ji -- The Horse Racing 贪心算法

    这道题就是解决选择策略问题 思路一 先将田忌跟齐王的马的速度数组进行一次冒泡排序 1 如果田忌最慢的马比齐王最慢的马快 则比慢马 2 如果田忌最慢的马比齐王最慢的马慢 则用田最慢的马跟齐最快的马比 消耗齐的快马这是贪心的第一步 3 如果田忌
  • ElasticSearch 提示: NoNodeAvailableException[None of the configured nodes are available:

    ElasticSearch6 3 2 之java 客户端连接提示如下错误 NoNodeAvailableException None of the configured nodes are available 造成此问题的原因是 elast
  • 做自媒体,如何提高自己的创作能力,快速打造爆款?

    1 写作功底 首先在自己的文笔方面还是有一定的要求的 一定要保证自己的文章没有语病 有一定的逻辑性 要提炼出一定的观点 保证别人可以看得懂 主要就看你能不能长期写出吸引人的文章 写的文章深入人心 这样才会有粉丝 没粉丝的话账号是做不起来的
  • windows下ssh连续多次中转访问服务器

    准备工作 xshell下载地址 服务器A IP 192 168 0 1 服务器B IP 192 168 0 2 服务器C IP 192 168 0 3 用途 现有服务器A B C和客户端D 服务器A只能被客户端D访问 服务器B只能被服务器A
  • React 的 setState 立刻更新

    我们会发现其实 React 的 setState 方法是一个异步的方法 React 会将所有的 setState 方法打包成一次进行更新 类似于快递点寄快递 囤积了一些包裹后一次投递 而不是你每次修改 state 都会进行更新 这样的设计主
  • BAT大厂陆续裁员,2023,还能入职大厂吗?

    2022年 陆续传出了京东 字节 阿里 腾讯等大公司裁员的消息 让人有点看不懂的是 裁员过后 却是各大公司继续招人的消息 一边招一边裁 这是什么 玩法 鲶鱼效应告诉我们 活力来源于竞争 来自于压力和挑战 若不淘汰那些学习能力弱 技术提升慢
  • 程序设计思维 week9 作业B-东东学打牌

    目录 题目 Input Ouput Sample Input Sample Ouput 思路 代码 总结 题目 所有扑克牌只按数字来算大小 忽略花色 每张扑克牌的大小由一个值表示 A 2 3 4 5 6 7 8 9 10 J Q K 分别指
  • 实时手写数字识别

    PS 好久之前的博客了 再整理百度云的时候翻到了之前的代码 贴在这里 代码 手写数字识别作为模式识别领域的一个重要问题 也有着重要的理论价值 在大数据时代的背景下 其应用领域非常之广 很多学者对手写数字识别提出了不同的算法 取得了不错的测试
  • 交易猫不显示服务器,交易猫上号器一直显示检查游戏环境

    交易猫上号器怎么登录 1 进入交易猫官网 在首页搜索店铺名字 租号社区 2 进入卖家店铺 租号社区 选购帐号 3 下单后等待客服发送帐号信息 上号器下载链接和解锁码 4 收到解锁码后进入下载链接下载专用上号器 5 安装好后输入12开头的登录
  • static用法

    本用法针对于C语言 文中所用代码在Qt中均运行成功 static 主要用法 修饰变量 修饰函数 1 修饰变量 形成动态变量和静态变量 动态变量 不使用static include