美文网首页
2-数据类型_变量_内存分区

2-数据类型_变量_内存分区

作者: ibo | 来源:发表于2017-02-03 15:40 被阅读0次
八进制 与 二进制
  • 一位八进制数 对应 三位二进制数
十六进制 与 二进制
  • 一位十六进制数 对应 四位二进制数
进制
  • 二进制 : 0b 或者 0B
  • 八进制 : 0 0123
  • 十六进制 :0x 或者 0X

数据类型:

short
  • 短整型 占用 2个字节
int
  • 整型 占用4个字节 16位系统下 , int 占2个字节
long
  • 长整型 占用4个字节(32) 8个字节(64位系统下)
bool
  • 占用内存空间 : 1个字节
  • 取值范围(值域) : true(1) , false(0)
  • 逻辑真 (非零) 假 (零值)
  • 注意添加头文件: #include <stdbool.h>
char 型
  • 处理字符
  • 占用内存空间 1个字节
  • 取值范围(值域) : (signed) char 有符号数 ; -128 ~ +127
  • unsigned char 无符号数 ; 0 ~ 255
float
  • 单精度 占用4个字节
double
  • 双精度 占用8个字节

* 浮点型 : 所有浮点型数据全部为约值


有符号负数
  • -127
  • 原码 : 1111 1111
  • 反码 : 1000 0000
  • 补码 : 1000 0001

* 在任意字符串的末尾会存在 字符串终止符 '\0'

变量

  • 存储类型 数据类型 变量名

  • 全局变量 :定义的表达式不位于任意的函数体内部.

  • auto : 最常用最不常见.
    auto 修饰局部变量 , 如果局部变量前没有出现存储类型,
    则编译器默认该变量的存储类型为auto .

  • register : 寄存器型 (修饰局部变量)
    提醒系统在执行程序时把该数据存放在寄存器中,
    缩短程序执行时间, 提高程序执行效率.
    如果在寄存器没有多余的存储空间时, 会把该数据默认为auto进行处理.

  • extern : 外部参照引用类型
    引用在同一个C语言工程中定义的全局变量 .

  • 变量的定义:分配存储空间

  • 变量的声明:不分配存储空间.

  • static : 静态存储类型

  • 修饰局部变量 : 改变局部变量的存储位置, 延长变量的生命周期到程序执行结束.
    变量的值为上一次运算的结果值.

  • 修饰全局变量 :防止其他文件引用本文件定义的全局变量.

  • 修饰函数 : 防止其他文件引用本文件定义的函数.


内存分区

代码区 :
静态区 :
  • 全局变量 、 static修饰的局部变量 、常量
    .bss段(未初始化数据区) .data段(已初始化数据区) rodata 常量区
    如果数据未初始化, 默认值为0 .
堆区 :
栈区 :
  • 局部变量 , 函数参数 .
    如果数据未初始化, 默认值为随机值.

* 有符号数与无符号数同时参与运算时, 有符号数默认转换为无符号数参与运算.


位运算符 : ~ & | ^ << >>

& :
  • 任意一位和 1相与, 结果值不变; 任意一位和 0相与, 结果值为0
| :
  • 任意一位和 0相或, 结果值不变; 任意一位和 1相或, 结果值为1
异或 :
  • 两者相同为0, 不同为1 ;
左移 : <<
  • 左端舍弃, 右端补零
右移: >>
  • 逻辑右移: 右端舍弃, 左端补零
  • 算术右移: 右端舍弃, 左端补符号位.

sizeof函数 :

  • 作用: 计算已知数据类型占用内存空间的字节数.
  • sizeof(类型名或者变量名);

相关文章

  • 2-数据类型_变量_内存分区

    八进制 与 二进制 一位八进制数 对应 三位二进制数 十六进制 与 二进制 一位十六进制数 对应 四位二进制数...

  • OC内存管理 - OC

    内存管理的范围 范围:管理任何继承NSObject的对象,对其他的基本数据类型无效。 内存分区(5大分区) 栈区:...

  • C基础-内存的四驱模型

    数据类型的本质 数据类型本质:一个固定大小连续的内存块。数据类型的作用:分配内存空间大小 变量的本质 变量的本质:...

  • iOS内存管理(一)基础知识

    iOS内存管理 内存分区 这里从低到高介绍一下iOS内存的分区及主要存储内容。 内核区 栈区:函数,方法,局部变量...

  • 内存管理:部分基础知识

    一、内存分区二、常用数据类型占用内存大小三、给对象分配内存 1、给结构体分配内存及内存对齐 2、内存分配完后,内存...

  • Java多线程-带你认识Java内存模型,内存分区,从原理剖析V

    写在前面 读完本篇文章你将知道: * Java的内存模型。 * Java的内存分区。 * 全局变量、局部变量、对象...

  • Java之内存分析和String对象

    内存分区: 注:不是所有基本类型都存在栈中 heap:堆,动态申请内存(new出来的)成员变量(实例变量),当新建...

  • 变量笔记

    #变量及数据类型 一.变量 (1)为什么使用变量 内存地址不好记,使...

  • Java多线程-带你认识Java内存模型,内存分区,从原理剖析V

    写在前面读完本篇文章你将知道:Java的内存模型。 Java的内存分区。 全局变量、局部变量、对象、实例再内存中的...

  • iOS程序内存分配

    iOS程序所占的内存分区 栈区:存放函数的参数值,局部变量的值,基本数据类型等由编译器自动分配释放,不需要程序猿管...

网友评论

      本文标题:2-数据类型_变量_内存分区

      本文链接:https://www.haomeiwen.com/subject/uyydittx.html