存储类型相关知识

  • C语言中定义变量的格式:
	存储类型 数据类型 变量名;
  • C语言的存储类型:
  • 常见的有const、static、extern、auto、register、volatile
  • const关键字:
  • const关键字修饰变量时,该变量表示是一个只读变量不能通过变量名修改变量的值
  • 案例:
	const int m = 20;int const n = 30;m = 30;//不可以赋值,因为m是只读变量n = 20;//不可以赋值,因为n是只读变量
  • const修饰指针:
  • 三种情况:
  • 1、指针的指向可以修改,但是不能通过指针修改指向空间里面的内容
  • 案例:
	const int *p;int const *p;
  • 2、指针的指向不可以修改,但是能通过指针修改指向空间里面的内容
  • 案例:
	int * const p;
  • 3、指针的指向不可以修改,也不能通过指针修改指向空间里面的内容;
  • 案例:
	const int * const p;
  • static关键字:

  • static常用于修饰变量;

  • static的作用:

  • 一、延长局部变量的生命周期:

  • static修饰静态局部变量执行初始化1次,使得局部变量的生命周期原本从离的最近的花括号结束,在static修饰后,延长至整个程序结束

  • 二、限制作用域:

  • 1、static修饰的全局变量,只能在本源文件中访问,即便是extern外部声明不可以

  • 2、static修饰的函数,只能在本源文件中调用;

  • static 修饰的变量:

  • 其存放在全局数据区静态变量区,包括全局静态变量局部静态变量,都在全局数据区分配内存,其在初始化时,自动初始化为 0

  • 特别注意:

  • 1、static修饰的局部变量主函数执行之前,就已经分配好了;

  • 2、在功能函数中,static修饰的局部变量只是一个声明,多次调用时,也不会重新赋值

  • 3、static修饰的局部变量仍是局部变量,作用域还是离的最近的花括号

  • extern关键字:

  • extern修饰的变量或者函数是在其他源文件中定义的,即在一个源文件中,若要使用其他源文件中所定义的变量或者函数,需要使用extern关键字声明

  • auto关键字:

  • 除了全局变量static的变量,定义变量时,省略存储类型的变量,默认都是auto修饰的;

  • register关键字:

  • register修饰的是寄存器类型的变量,被处理器执行的效率是最高的

  • CPU在取数据时,优先级为:寄存器 > 高速缓存(cache)> 内存空间;

  • 由于中央处理器的寄存器的个数是有限的,所以把所有的变量都定义成寄存器变量是不现实的;

  • 特别注意:

  • register关键字修饰的变量是不能取地址的;

  • volatile关键字:

  • 主要作用是,防止编译器优化,要求CPU每次取数据,必须在内存中取;

  • 常见的使用场景:

  • 1、多线程访问同一个变量;

  • 2、寄存器处于中断的状态;

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

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

相关文章

Lattice-Based Blind Signatures: Short, Efficient, and Round-Optimal

目录 摘要引言 Lattice-Based Blind Signatures: Short, Efficient, and Round-Optimal CCS 2023 摘要 我们提出了一种基于随机预言机启发式和标准格问题(环/模块SIS/LWE和NTRU)的2轮盲签名协议,签名大小为22KB。该协议是全面优化的&#xf…

shopify主题开发-1

shopify主题开发 windows环境 安装 Shopify CLI npm install -g shopify/cli shopify/theme使用 Dawn 初始化一个新主题 Dawn 是 Shopify 的参考主题,专为性能、灵活性和易用性而构建。它使用Online Store 2.0功能,包括JSON 模板,支持所有…

企业网盘在医疗行业资料管理中的应用与优势

随着企业网盘的广泛应用,医疗行业正逐渐实现资料安全存储和智能化管理。海量应用的推动下,医院管理正朝着线上化、智能化发展迈进。然而,医疗行业仍面临着诸多挑战。 医疗行业的痛点在于病例、档案、药品资料繁多且保存周期长。这些资料的整理…

服务注册发现 配置中心 springcloud alibaba nacos

文章目录 0100 系统环境0200 nacos安装0201 下载0202 安装 0300 工程说明0301 结构说明0302 运行效果 0400 代码说明0401 服务提供者(Provider Service)0402 服务消费者(Consumer Service)服务提供者SDK(Provider Serv…

Mapper文件夹在resource目录下但是网页报错找不到productMapper.xml文件的解决

报错如下&#xff1a; 我的Mapper文件夹在resourse目录下但是网页报错找不到productMapper.xml。 结构如下&#xff1a;代码如下&#xff1a;<mappers><mapper resource"com/dhu/mapper/productMapper.xml" /> </mappers> 这段代码是在mybatis-co…

5G承载网和大客户承载的演进

文章目录 移动4/5G承载网联通和电信4/5G承载网M-OTN&#xff08;Metro-optimized OTN&#xff09;&#xff0c;城域型光传送网PeOTN&#xff08;packet enhanced optical transport network&#xff09;&#xff0c;分组增强型OTN板卡增强型PeOTN集中交叉型PeOTN VC-OTN&#x…

Hdoop学习笔记(HDP)-Part.11 安装Kerberos

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

python爬虫抓取网页图片教程

在Python中&#xff0c;你可以使用requests库来发送HTTP请求&#xff0c;以及BeautifulSoup或Scrapy库来解析网页内容。你也可以使用selenium库&#xff0c;它是一个自动化测试工具&#xff0c;用于模拟用户在浏览器中的操作。 下面是一个简单的例子&#xff0c;说明如何使用r…

ASP.NET Core 使用IIS调试出现505.24错误

最近一直再学习asp.net 相关的东西&#xff0c;主要是为前端app提供一个webapi接口。在使用iis调试程序时出现HTTP Error 500.24 - Internal Server Error错误&#xff0c;搞了好久才最终解决。 1.在项目中增加web.config配置文件 2.将配置文件改为如下内容 <?xml version…

C++模版

文章目录 C模版1、泛型编程2、函数模版2.1、函数模版概念2.2、函数模版格式2.3、函数模版原理2.4、函数模版的实例化2.5、模板参数的匹配原则 3、类模版3.1、类模版概念3.2、类模版格式3.3、类模板的实例化 C模版 1、泛型编程 泛型编程&#xff08;Generic Programming&#x…

003、应用程序框架-UIAbility

之——UIAbility 目录 之——UIAbility 杂谈 正文 1.UIAbility 2.基本使用 2.1 创建Ability工程 2.2 添加基础功能 2.3 新建页面 2.4 页面间的跳转 3.生命周期 总结 杂谈 UIAbility&#xff0c;其中的页面创建、页面间的跳转、数据传递、生命周期。 正文 1.UIAbil…

【数据结构】环形队列

环形队列 1. 定义 环形队列就是将队列在逻辑上看作环形结构、物理上仍是数组形式存储的一种数据结构。 其实现主要分为两种情况&#xff1a; 浪费空间法记录空间法 2. 实现 实现要考虑的是成员变量 2.1 记录空间法 使用used标识当前存储了多少元素&#xff0c;如果为空&a…

【0240】源码分析PG内核中的关键字列表(SQL keywords)

相关文章: 【0236】聊一聊PG内核中的命令标签(Command Tags、CommandTag、tag_behavior) 【0239】从编译原理角度理解 #include “xxx“ 或 #include<xxx> 的实现机制 1. PostgreSQL的SQL关键字列表(SQL Keywords) 1.1 keywords.c源文件内容 keywords.c源文件中的内容…

03.PostgreSQL常用索引与优化

PostgreSQL常用索引与优化 主要内容转载自《PostgreSQL 开发指南》 索引&#xff08;Index&#xff09;可以用于提高数据库的查询性能&#xff1b;但是索引也需要进行读写&#xff0c;同时还会占用更多的存储空间&#xff1b;因此了解并适当利用索引对于数据库的优化至关重要。…

基于ASP.NET MVC技术的图书管理系统的设计与实现

基于ASP.NET MVC技术的图书管理系统的设计与实现 摘要&#xff1a;图书管理系统是一套高新科学技术和图书知识信息以及传统历史文化完美结合的体现。它改变了传统图书收藏的静态书本式图书服务特征&#xff0c;实现了多媒体存取、远程网络传输、智能化检索、跨库无缝链接、创造…

type-c充电器输出电压5V9V12V15V20V PD协议诱骗快充应用方案

Type-C接口的PD充电器&#xff08;如iPhone的20W充电器&#xff09;默认是没有电压输出的&#xff0c;想要让Type-C的充电器输出5V、9V、12V、15V、20V&#xff0c;只需要在产品上使用一颗快充取电芯片XSP08即可。 工作原理&#xff1a; 各类小家电产品如平板电脑、智能穿戴产…

服务器感染了.mallox勒索病毒,如何确保数据文件完整恢复?

尊敬的读者&#xff1a; 随着数字化时代的不断发展&#xff0c;网络安全问题变得日益突出。近日&#xff0c;一种新的威胁——.mallox病毒&#xff0c;以其高度狡猾的勒索手段引起了广泛关注。本文将深入介绍.mallox病毒的威胁、如何应对被其感染的情况&#xff0c;以及如何通…

私有化外卖软件:打造专属美食配送体验

随着互联网的普及和人们生活节奏的加快&#xff0c;外卖已经成为人们日常生活的一部分。为了满足客户的个性化需求&#xff0c;我们开发了一款私有化外卖软件&#xff0c;旨在为您提供专属的美食配送服务。 一、定制化服务&#xff1a;满足您的独特需求 我们的私有化外卖软件可…

什么是Ros(二)- 结构和通讯概述

目录 1.架构 2.通讯 参考文献 上接&#xff1a;什么是Ros&#xff08;一&#xff09;-CSDN博客 1.架构 共三层&#xff1a;OS 层&#xff0c;中间层&#xff0c;应用层。 OS 层&#xff1a;OS 层是操作系统层也就是我们现在使用的ubuntu&#xff08;linux&#xff09;&…

win10下在Qt中使用VTK(安装VS2017+安装QT5.9.9+编译配置VTK8.2.0)

目录 前言一、安装Visual Studio20171&#xff09;官网下载可执行的安装程序2&#xff09;安装3&#xff09;启动 二、安装Qt 5.9.91&#xff09;下载可执行的安装程序2&#xff09;安装3&#xff09;配置环境变量 三、安装Cmake1&#xff09;下载可执行的安装程序2&#xff09…