黑马程序员技术交流社区

标题: 数组!首发第一弹!! [打印本页]

作者: kakam    时间: 2016-7-20 20:41
标题: 数组!首发第一弹!!
1.深入变量的细节
  - 不同的数据诶星战有不同的字节数
  - 一个变量占用的字节肯定是连续的
  - 内存中储存数据的基本单元是byte字节
  - 一个字节有八个bite
  - 相邻的两个字节的地址是连续的
  - 每一个字节都有对应的十六进制地址
  - 变量是内存中用于储存数据的若干字节

  <1>.变量的内存分配
   -  定义一个变量是在内存中分配的若干连续字节
   - 变量的分配是是内存的高地址到低地址分配的
   - 一个变量的值在内存中的高位对应高字节,低位对应低字节

    <2>.变量的地址
   - 变量的地址是组成变量的低字节的地址
   - 使用&可以取出地址
   - 打印地址%p 占位符

注意:程序在运行过程中不只是自定义的变量在申请和被分配到空间,系统的代码也会申请空间.这可能会造成我们在申请变量的时候么一个变量不是挨着的.但是同一个字节内的字节一定是连续的.

2.int类型的修饰符
  - 作用 :制定int类型变量在内存中的字节数
                short int  占2个字节 16位
                最高位是符号位
      short 用%d打印有的时候不能输出一个short int 数据
                %hd占位符来输出
                short int 中可以省略int



                     在32位操作系统中占4个字节
      long int   在64位操作系统中占8个字节
                     OS X和iOS系统是64位
                      %ld占位符输出
                      声明的时候可以省略int


   long long int   无论是32和64位操作系统都是8个字节
                          声明时可以省略

    扩展:long 可以休息double变量,分配double类型16个字节

3.有符号和没有符号的修饰符
   - unsigned 让最高位来参与数据表示 %u
      有 %u %hu %lu %llu
   - signed 和 unsigned 不可以修饰doubule
4.char 变量在内存中的存储
    - 任何基本类型的存储数据的方式都是以二进制补码存起来的
    - char 有符号位
    - char 数据是字符的ASCII码的二进制反码存储的
    - signed 和 unsigned 可以共存

5.垃圾值的产生
   - 局部变量没有初始化的话会产生垃圾值
   - 打开哟好执行完毕之后 变量被回收
           声明变量的时候是像系统申请若干连续字节
           数据不会被回收之后被覆盖
6.全局变量
   - 全局变量生命是系统会自动清零

1.数组的概述
   .特点
        - 可以存出多个数据
        -  同一个数组当中的元素类型相同意义相同个数固定
    .声明
            数组类型 + 数组名 (N)
           - 先确定多个数据的数据类型
           - 在确定这些数据的个数
    .数组在内存中是如何创建的
      类型: 不要忘了带数组
      元素:普通类型的变量
      下标.从0开始依次递增
      长度:生命要存多少个元素

2.如何在数组中存储数据?
        -  将值付给一个个的元素,通过下表;数字名[元素下标] = 100;
        -  元素的本质是一个变量
        - 当赋值时类型不一致会发生类型自动转换
        - 下标不能越界,下标的取值范围,数组长度-1
        - 取数据的时候也是通过下标
3.使用数组时的注意事项
   - 声明数组时一定要生命长度和类型
   - 长度可以是表达式,变量,或者字符也是可以的
   - 长度不能是一个负数或者小数
   - 长度可以是1 或者0
   - 数组长度也可以是长度为正数的宏
注意:声明一个数组的时候不能复制给括号中的变量

4.数组在内存中存储形式
   1)声明数组
     - 在内存中从高到低地址连续申请(数组长度*元素的字节数)个字节
     - 第零个元素在低字节
5.数组的地址
    - 实数组中字节最低的地址也是下表为0的元素的低字节地址
    - 数组名代表这个数组的地址
    从值得角度看 数组名 == 数组的地址
6数组的长度
    - 数组的长度 = sizeof(arr)/sizeof(arr[ 0 ])

作者: twototwoto    时间: 2016-7-21 13:07
赞一个
1里边一个字节占8bit




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2