首页 > 其他分享 >C语言-变量的存储类型

C语言-变量的存储类型

时间:2023-04-03 12:15:21浏览次数:34  
标签:存储 变量 auto C语言 static 内存 寄存器

0 存储类型是指变量占用内存空间的方式,也称为存储方式。从内存分配的时间上,可分为“静态存储”和“动态存储”类。
    0.1 静态存储:在程序前,系统(编译器)自动分配内,程序结束后,系统(编译器)自动释放。
    0.2 动态存储:在程序执行时;根据需要手动分配内存,使用完成后再手动释放。

1 C语言中,变量的存储类型具体有以下4种:auto 自动(动态存储)、register 寄存器 (动态存储)、static 静态(静态存储)、extern 外部(外部存储)
    1.1 auto: 函数中所有非static局部变量
      C支持auto int i;-C++不支持
      C++支持auto i = 0;自动识别i为int型
 1.2 register: 寄存器存储变量,提高访问效率
        使用registrer的目的是让程序员把某个指定的局部变量放在计算机的某个硬件寄存器中而不是内存中。好处是提高运行效率(较内存而言,CPU访问内存更快)
                   C++优化:自动将计算量大的存为寄存器变量-无需定义;不可全局使用(CPU访问寄存器的速度比访问内存的速度快)
    1.3 static:静态变量,只能初始化一次
            将内部和外部的变量变成static的意义是不一样的
                 对于局部变量而言,static相较auto,程序执行时始终保持它的值(初始化操作只能在第一次执行的时候,如果不初始化默认为0)
     1.4 extern: 外部存储变量,extern声明了程序中将要使用,但尚未定义的外部变量。
                  外部变量的作用域从定义处到文件结束

标签:存储,变量,auto,C语言,static,内存,寄存器
From: https://www.cnblogs.com/xa-baiyulong/p/17282677.html

相关文章

  • Java-Day-2(转义字符 + 注释 + 代码规范 + 变量 + 数据类型)
    Java-Day-2常用转义字符代码中只一个\会默认转义(写在“”里)\t:制表位,可以实现对齐功能,可以看作有一个无形表框(上下两行长度相差不大)\n:换行符,仅换代码行的话\\:一个\,想输出"\\"就要输入四个\\'':一个“,字符串里输出双引号\':一个‘\r:一个回车,光标......
  • [C/C++] 判断电脑存储模式(大端/小端)
    C语言版本:#include<stdio.h>#include<inttypes.h>intmain(){uint32_tnum=0xaabbccdd;//字节方向:高->低,也就是aa是高字节,dd是低字节uint8_t*point=(uint8_t*)(&num);for(inti=0;i<sizeof(num);++i){......
  • ORACLE之PACKAGE-包、存储过程、函数
    原文地址:https://www.cnblogs.com/hoaprox/p/5316444.html1,简单的包。创建包规范:createorreplacepackagepack_test1is--定义过程1procedurep_test1(p_1invarchar2);--定义函数1functionf_test1(p_1invarchar2)returnvarchar2;endpack_test1;......
  • C语言,str系列函数
     1、strcat()此函数原型为char*strcat(char*dest,constchar*src).功能为连接两个字符串,把src连接到dest后面;返回dest地址//函数实现char*strcat(char*dest,constchar*src){char*addr=dest;while(*dest)//找到'\0'{dest++;};......
  • layui和vue.js和jq一起使用调用vue方法及变量
    <divclass="layui-rowlayui-col-space15"id="app"></div>定义vueApp:letvueApprequire(['vue'],function(Vue){vueApp=newVue({el:"#app",data:{where......
  • 逍遥自在学C语言 | 变量、常量与数据类型
    前言一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、基本数据类型1、整型C语言中的整型数据如下表所示:数据类型含义长度(字节)取值范围(有符号)取值范围(无符号)shor......
  • 【测试】主流数据库存储过程编写样例(Oracle、MySQL、SQL Server)
    这个...做测试其实有时候还是需要先弄点数据才好针对某些功能进行测试的(相信做过开发的都应该深有体会)。一般像我这种老油条都推荐使用存储过程来做的初始化数据,一来脚本不会骗人,二来可以通过另一种方式验证逻辑关系。下面将整理了三个主流数据库(Oracle、MySQL和SQLServer)的“单表......
  • C语言逆向——数组和结构体,数组多维只是一个编译构造的假象,本质会转成一维数组,结构体
    数组数组是C语言中非常重要的一个概念,学习C语言主要就是两个知识点:数组、指针,学好这两个,那么你的C语言一定也会很好。什么是数组?或者说什么情况下我们需要使用数组,比如说我们需要定义一个人的年龄,我们可以定义一个变量来表示,但是如果我们需要定义三个人的年龄呢?那就需要三个变......
  • C语言逆向——循环语句
    循环语句循环语句的反汇编如下图是各个循环语句的反汇编代码:但从汇编来看我们可以看得出do...while循环语句效率是最高的,但是在日常使用来说大部分会选择使用for与while,do...while出现的较少,还是跟之前我们说的一样,这一点空间可以忽视不管,for语句是最方便书写的,也就是我们可......
  • C语言逆向分析——Switch语句,为何大多数情况较if语句更高效?就是因为查找表
    Switch语句Switch语句也是分支语句的一种,其语法如下:switch(表达式){case常量表达式1:语句;break;case常量表达式:语句;break;case常量表达式:语句;break;......default:语句;break;}需要注意如下几点:表达式结束不能是浮点数case后的......