揭秘c语言储存类别

前言

欢迎来到我的博客

个人主页:北岭敲键盘的荒漠猫-CSDN博客

 本文将整理c语言的储存类型的知识点

储存类型概念

描述:用于解决内存开辟与解放的时间的问题。跟作用域没啥关系。

但是呢,他也是能影响到程序的运行的,所以是很关键的。

类型:

auto :自动变量,默认的类型

static: 静态变量

extern: 拓展变量

auto变量

描述:默认变量,我们不定义的话他默认是这个。这个的内存开辟为,执行这个定义变量语句的时候就会开辟内存空间,当我们执行完这个变量所在的定义域的时候就会解除他所占用的空间。

因为我们之前一直都是用这个默认的变量,所以我就不多废话了。

static静态变量

官方理解:这个变量从执行后就会一直存在,他的内存直到程序结束的时候才会释放。

方便的理解:比如在函数中,定义后他就一直存在,下次调用函数不再定义他,而是使用上次定义的这个变量进行操作。

他的作用分为两种:

局部变量

全局变量

全局变量

提前预知:我们一个c文件中的函数或者变量,是可以引入到其他的c文件中使用的。

static定义全局变量的效果:没错,就是禁止这个全局变量能够被拿到其他的文件中使用,让他只能在本文件中使用。

局部变量

描述:在局部变量中,我们用startic定义变量,倒是可以直接把这个静态变量所在的函数引用的其他的文件中。但是在局部变量中,这个startic变量是从执行他开始就存在,一直存在到程序结束。中途要是重复调用函数,再到他赋值的这行代码,就会直接跳过。

案例演示:

#include <stdio.h>int fun()
{static int a = 1;a++;printf("%d", a);
}int main()
{int b;for (b = 0; b < 5; b++) // 循环执行函数三次fun();
}

结果如下:

你看,按理来说每次执行函数都应该执行一个a=1,重置a,但是我们加上了startic之后,他就会跳过,不会再重新赋值了。

注意点:如果是定义了startic变量,而且没给他赋初始值的话,他就自己默认为0.

#include <stdio.h>int fun()
{static int a;printf("%d", a);
}int main()
{fun();
}

extern变量

extern有两个作用,

第一个是声明主函数下面的变量,让主函数能够使用下方变量。

第二个是从其他文件中找到这个变量,来引入到这个文件中。

从exper1中获取a变量,然后再exper中使用。

他与include的差距就是,他是引入一个变量,include引入整个文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/23000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拉取代码编辑器中报错`Delete ␍ prettier/prettier` 问题的解决方案

当您在使用 git clone 下载Web前端代码仓库后&#xff0c;可能会遇到 Delete ␍ prettier/prettier 的提示时&#xff0c;这通常意味着您的代码中存在不兼容的换行符问题。 问题产生的原因 在不同的操作系统中&#xff0c;文本文件的换行符是不同的。Windows系统通常使用回车…

Pytorch常用函数用法归纳:Tensor张量之间的计算

1.torch.add() (1)函数原型: torch.add(input, other, alpha, out) (2)参数说明: 参数名称参数类型参数说明inputtorch.Tensor表示参与运算的第一个输入Tensor张量othertorch.Tensor或者Number表示参与运算的第二个输入Tensor张量或标量alphaNumber, optional一个可选的缩放…

idea mac快捷键

Mac快捷键 快捷键 说明 ⌘ F 在当前窗口查找 ⌘ ⇧ F 在全工程查找 ⌘ ⇧ ⌥ N 查找类中的方法或变量 F3 / ⇧ F3 移动到搜索结果的下/上一匹配处 ⌘ R 在当前窗口替换 ⌘ ⇧ R 在全工程替换 ⌘ ⇧ V 可以将最近使用的剪贴板内容选择插入到文本 ⌥…

负压实验室设计建设方案

随着全球公共卫生事件的频发&#xff0c;负压实验室的设计和建设在医疗机构中的重要性日益凸显。负压实验室&#xff0c;特别是负压隔离病房&#xff0c;主要用于控制传染性疾病的扩散&#xff0c;保护医护人员和周围环境的安全。广州实验室装修公司中壹联凭借丰富的实验室装修…

MQTT.FX的使用

背景 在如今物联网的时代下&#xff0c;诞生了许多的物联网产品&#xff0c;这些产品通过BLE、WIFI、4G等各种各样的通信方式讲数据传输到各种各样的平台。 除了各个公司私有的云平台外&#xff0c;更多的初学者会接触到腾讯云、阿里云之类的平台。设备接入方式也有着多种多样…

神经网络应用场景——图像识别

神经网络在图像识别中的应用是一项重要且广泛的技术&#xff0c;下面将详细解释和说明神经网络在图像识别中的定义、特点以及应用场景。 一、定义 神经网络在图像识别中的应用&#xff0c;主要是指利用神经网络模型对图像进行特征提取和分类&#xff0c;从而实现对图像中物体…

Spring自带定时任务@Scheduled注解

文章目录 1. cron表达式生成器2. 简单定时任务代码示例&#xff1a;每隔两秒打印一次字符3. Scheduled注解的参数3.1 cron3.2 fixedDelay3.3 fixedRate3.4 initialDelay3.5 fixedDelayString、fixedRateString、initialDelayString等是String类型&#xff0c;支持占位符3.6 tim…

2004NOIP普及组真题 4. 火星人

线上OJ&#xff1a; 【04NOIP普及组】火星人 核心思想&#xff1a; 本题的难点是阅读理解。通读后发现&#xff0c;题目的本质是全排列&#xff0c;加上的数字 m &#xff0c;起始就是调用 m 次 next_permutation() 。 题解代码&#xff1a; #include <bits/stdc.h> u…

C++部分关键字的作用-__declspec(dllexport)、__declspec(dllimport)、__attribute__、__cdecl

__declspec(dllexport)和__declspec(dllimport) 这个关键字主要用于Windows平台上的DLL编程。当你在一个DLL中定义一个函数或变量&#xff0c;并希望它能够被其他应用程序导入和使用时&#xff0c;你可以使用__declspec(dllexport)来标记这个函数或变量&#xff0c;这样编译器…

C语言从头学16——数据类型(二)

继续学习数据类型。 3、浮点型数float 有小数点的数值称为浮点数。浮点数用 float 进行声明。 float 类型占用4个字节&#xff08;32位&#xff09;&#xff0c;float 类型表示十进制数时至少能够提供6位有效数字&#xff0c;例如&#xff1a; float x 1020.25; …

程序员应该有什么职业素养?【模板】

程序员应该有什么职业素养&#xff1f; 简介&#xff1a;你认为对于程序员而言&#xff0c;什么职业素养是最为重要的呢&#xff1f;在你的职业生涯中&#xff0c;有什么切实的案例发生吗&#xff1f;让我们探讨程序员在职业生涯中应具备的职业素养&#xff0c;讲述你在工作中…

GD32F407ZGT6/GD32F450ZGT6(3)外部中断实验

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发 向上代码兼容GD32F450ZGT6中使用 后续项目主要在下面该专栏中发布&#xff1a; https://blog.csdn.net/qq_62316532/category_12608431.html?spm1001.2014.3001.5482 感兴趣的点个关注收藏一下吧! 电机驱动开发可以跳转…

商品详情接口在独立站的应用及接口请求示例

商品详情接口在独立站的应用主要体现在以下几个方面&#xff0c;这些应用不仅提升了独立站的运营效率&#xff0c;也优化了用户体验&#xff1a; 商品信息查询与展示&#xff1a; 商品详情接口允许独立站通过商品ID或关键词快速查询商品详细信息&#xff0c;包括价格、库存、…

用幻灯片讲解C++手动内存管理

用幻灯片讲解C手动内存管理 1.栈内存的基本元素 2.栈内存的聚合对象 3.手动分配内存和释放内存 注意&#xff1a;手动分配内存&#xff0c;指的是在堆内存中。 除非实现自己的数据结构&#xff0c;否则永远不要手动分配内存! 即使这样&#xff0c;您也应该通过std::allocator…

Nerstudio 相机优化代码理解

源码 有两种模式&#xff0c;SO3xR3和SE3&#xff0c;代表不同的刚体变换&#xff0c;都是6个参数&#xff0c;表述三个旋转角3个偏移量 # Initialize learnable parameters.if self.config.mode "off":passelif self.config.mode in ("SO3xR3", "S…

ABC353

A #include<bits/stdc.h>using namespace std;int n;int main() {cin>>n;int m0;int i0;int pos0;while(m<n){mpow(2,i);i;pos;}cout<<pos; }B 模拟 #include <iostream> #include <cstring> #include <algorithm>using namespace s…

进入新公司有焦虑感怎么办?

前因 前两天技术交流群里有童鞋问了一个很有意思的问题&#xff0c;他问如何克服进入新公司的焦虑感&#xff1f;很多热心的童鞋都纷纷支招&#xff0c;比如 “主动干活”、“专注干活”、“让时间冲淡焦虑感”、……等等&#xff0c;这些都很有道理&#xff0c;不过&#xff…

今时今日蜘蛛池还有用吗?

最近不知道哪里又开始刮起“蜘蛛池”这个风气了&#xff0c;售卖、购买蜘蛛池的行为又开始在新手站长圈里开始蔓延和流行了起来&#xff0c;乍一看到“蜘蛛池”这个词给明月的感受就是陌生&#xff0c;要经过回忆才能想起来一些残存的记忆&#xff0c;所谓的蜘蛛池说白了就是利…

PHP编程入门:揭开Web开发的神秘面纱

PHP编程入门&#xff1a;揭开Web开发的神秘面纱 在数字化时代&#xff0c;PHP作为一种广泛使用的服务器端脚本语言&#xff0c;为Web开发领域注入了强大的活力。无论你是编程新手还是有一定经验的开发者&#xff0c;掌握PHP编程都将为你开启一扇通往Web开发新世界的大门。接下…

grpc接口调用

grpc接口调用 准备依赖包clientserver 参考博客&#xff1a; Grpc项目集成到java方式调用实践 gRpc入门和springboot整合 java 中使用grpc java调用grpc服务 准备 因为需要生成代码&#xff0c;所以必备插件 安装后重启 依赖包 <?xml version"1.0" encoding&…