存储类型

1.变量的存储类型是指存储变量值的内存类型,变量的存储类型决定变量何时创建、销毁。

2.变量存储的三个地方:

  普通内存、运行时堆栈、硬件寄存器

  1.在任何代码块外声明的变量默认为静态(static)变量,并且无法更改。存储于静态内存中,也就是不属于堆栈的内存。

   静态变量在程序运行之前创建,在程序的整个执行期间都存在,并且值不变直至重新赋值。

  2.代码块内部声明的变量默认是自动变量(auto),存储于堆栈中。自动变量在代码执行到声明处才被创建,离开代码快即销毁,多次执行会多次创建。

   自动变量加上static关键字,变成静态变量,但并不会改变变量的作用域。

  3.自动变量加register关键字,则为寄存器变量

时间: 2024-10-10 09:30:48

存储类型的相关文章

Linux C笔记之 变量存储类型 详解

存储类型: 变量的存储类型是指存储变量值的内存类型 : 变量的存储类型决定变量何时创建.何时销毁以及它的值将保存多久 : 存储变量:普通内存.运行时堆栈.硬件寄存器: 变量的缺省存储类型取决于它的声明位置: 静态(static)变量: 在代码块之外声明的变量,存储于静态内存中,也就是不属于堆栈的内存. 静态变量,无法为它指定其他存储类型.它在程序运行之前创建,在程序的整个执行期间始终存在.它始终保持原先的值,除非给他赋一个不同的值或者程序结束. 自动(automatic)变量: 在代码块内部声明

【转】C语言中标识符的作用域、命名空间、链接属性、生命周期、存储类型

Technorati 标签: C,标识符,作用域,命名空间,链接属性,生命周期,存储类型,scope,name space,linkage,storage durations,lifetime 无论学习哪一种语言,都免不了要讨论这些问题.而且这些问题,深究起来有时也让我们很迷惑. 标识符的定义无需多讲,只需注意不仅仅是指变量,还有函数,标签等. 1. 标识符的作用域 作用域是指允许对标识符进行访问的位置范围.按照C99(章节6.2.1),C语言的作用域共有 4 种类型:文件作用域.代码块作用域.

.Net配置文件——反射+配置文件存储类型实例

配置文件+反射确实去除了选择语句的繁琐,带来了优美的赶脚! 首先改进了一下类(接上文): namespace ClassLib { /// <summary> /// Interface IGreetingStrategy /// </summary> /// <remarks>Editor:v-liuhch CreateTime:2015/6/28 11:01:58</remarks> public interface IGreetingStrategy

Redis 四:存储类型之有序集合

有序集合似乎更大的操作是由于加了一个叫做“分子”的东西 事实上就好像普通的数据,只是为这个数据加了一个纯数字的标识, 通过操作这些标识来得到我们想要的数据! 分子可以是整形,也可以是双精度浮点型: ==================================================== 1.zadd num 100 a 80 b 70 c 添加一个叫num的有序集合,a元素为100分,b元素为80分.... 2.zscore num a 获取num集合中元素名为a的分子 ====

Redis 三:存储类型之字符串

1.赋值单个: set a 100 [赋值多个:mset a 100 b 200 c 300] 2.取值单个: get a [取值多个:mget a b c] 3.数字递增 incr a 在a的基础上+1,那就是返回101 如果预先的值为0,那么返回1,如果预先的值不是整形,则返回错误“is not an integer...” 3.1 数字递减 decr 用法跟上面一样 decr 4.约定(命名方式) 对象类型:对象ID:对象属性 user:100:friends 存储用户id为100的好友列

C语言中的存储类型

变量的生存期和作用域: 存储在静态存储区的变量,在编译时就分配了内存空间,在整个程序执行中,内存单元一直保持到程序运行结束被释放,这类变量的生存期为整个程序的运行期: 存储在动态区的变量,只有当程序执行到所在的函数被调用时,系统才为其分配内存空间,函数调用结束,变量即被释放,这类变量的生存期仅为函数的调用时间: 变量按作用域不同可分为局部变量和全局变量: 局部变量存储于动态存储区,全局变量存储于静态存储区: 变量的存储类型: 变量的作用域不同,本质上是由于变量的存储类型不同,分auto,regi

关于extern和static关键字引出的一些关于作用域和链接属性和存储类型的问题

在进入正题前我们必须了解一些概念: 标识符:标识符不仅仅代表着变量的名字,main()函数的main也是一个标识符,这点很重要. 存储类型:即变量的存储位置及其生存周期:静态区:分为两块 .date 已显式初始化的全局变量了静态变量 .bss 存放未初始化的全局或者静态变量 注意:静态变量的初值是在编译时就进行初始化了:意思就是用static修饰的变量赋过数值的话就保存为他的初值,如果没有初始化的话就赋值为零,且整个程序只初始化一次:即不管static int i = 1:或者这 static

【转】作用域、链接属性、存储类型总结--转载学习,很清晰,很详细

标识符: 首先,在讨论这三种东西之前,详细说明一下C语言中的标识符. 标识符是用户编程为变量.常量.函数.语句等指定的名字,就好比人名一样的东西. 标识符的命名规则如下: 1.只能由字母.数字.下划线组成,并且首字符不能是数字: 2.不能把C语言的关键字作为标识符: 3.对大小写敏感: 其次,需要明确,作用域和链接属性是在标识符范畴内讨论的,存储类型是在标识符中的变量范畴内讨论的. 作用域: 标识符的作用域就是程序中该标识符可以被使用的区域,由它的声明位置决定. 分为以下四类: 1.文件作用域

Redis 四:存储类型之无序集合

1.sadd num a b c 向num集合中添加abc三个元素 2.srem num b 从num集合中删除b元素 3.smembers num 获取num集合中所有的元素 4.sismember num c 判断c是否存在num集合中 ============================= 5.运算 sadd num a b c sadd num2 a b c d 差集(计算左边比右边多出来的那部分): sdiff num num 2 返回空 sdiff num2 num 返回d 交集

嵌入式 Linux C语言(八)——存储类型、作用域、生命周期、链接属性

嵌入式 Linux C语言(八)--存储类型.作用域.生命周期.链接属性 一.存储类型 C语言中,每个变量和函数都有两个属性:数据类型和数据的存储类型. 变量的存储类型是指存储变量值的内存类型.变量的存储类型决定变量何时创建.何时销毁以及它的值将保持多久.计算机中有三个地方可以用于存储变量:普通内存,运行时堆和栈,硬件寄存器.变量的存储类型取决于声明变量的位置. C语言存储类别说明符: 说明符 用    法 auto 只在代码块内变量声明中被允许, 表示变量具有本地生存期 extern 出现在顶