美文网首页
常用数据类型(一)

常用数据类型(一)

作者: qianranow | 来源:发表于2018-01-30 15:37 被阅读28次

    数组


    • 概念:用来存储具有 相同类型 的多个元素
    • 定义
      // 格式:元素类型 数组名[元素个数]
      
      1. 先定义再完全初始化
         int ages[5];
         ages[0] = 18;
         ages[1] = 18;
         ages[2] = 18;
         ages[3] = 18;
         ages[4] = 18;
      
      2. 定义同时不完全初始化
         int ages[5] = {18, 18, 18};
      
      3. 定义同时完全初始化
         float heights[5] = {1.99f, 1.99f, 1.99f, 1.99f, 1.99f};
      
      注意:
      (1) 如果先定义再 不完全 初始化,那么部分元素可能是一段 垃圾数据
          int ages[5];
          ages[0] = 18;
          ages[1] = 18;
          printf("0 = %i\n", ages[0]);
          printf("1 = %i\n", ages[1]);
          printf("2 = %i\n", ages[2]);
          printf("3 = %i\n", ages[3]);
          printf("4 = %i\n", ages[4]);
      
      (2) 如果定义同时 不完全 初始化, 那么 没有被初始化 的元素,默认是 0
          int ages[5] = {18, 18, 18};
          printf("0 = %i\n", ages[0]);
          printf("1 = %i\n", ages[1]);
          printf("2 = %i\n", ages[2]);
          printf("3 = %i\n", ages[3]);
          printf("4 = %i\n", ages[4]);
      
      (3) 如果定义同时完全初始化,那么元素的个数可以 省略
          int ages[] = {18, 18};
          printf("0 = %i\n", ages[0]);
          printf("1 = %i\n", ages[1]);
      
      (4) 可以通过 [索引] = 方式,给 指定索引 元素赋值
          int ages[101] = {[66] = 18, [88] = 18};
          printf("0 = %i\n", ages[0]);
          printf("66 = %i\n", ages[66]);
          printf("88 = %i\n", ages[88]);
      
      (5) 不建议 使用 变量 作为 元素个数
      
      (6) 只能定义 同时 使用 {} 进行初始化,若先定义那么就不能使用 {}
      
    • 操作
      • 获取单个元素
        // items[index]:通过 下标 访问元素
        int ages[] = {18, 18, 18};
        int a = ages[2];
        printf("2 = %i\n", a);
        
      • 遍历
        int ages[] = {18, 18, 18, 18, 18, 18};
        int length = sizeof(ages) / sizeof(ages[0]);
        for (int i = 0; i < length; i++) {
            printf("ages[%i] = %i\n", i, ages[i]);
        }
        
    • 内存分配
      • 地址:charValues == &charValues == &charValues[0]
      • 存储细节
        1. 系统给数组分配 一块连续 的 存储空间
        2. 数组名 代表数组的 首地址,从首地址位置,依次 存入元素
        3. 每个元素占用 相同 的 字节数
        4. 数组中元素之间的地址是 连续的
        
      • 越界:数据混乱程序崩溃
        char numbers[] = {3, 2};
        char values[] = {6, 6, 6};
        values[3] = 66;
        printf("nums[0] = %i\n", nums[0]);
        nums[-1] = 88;
        printf("values[2] = %i\n", values[2]);
        
        内存分配.png

    相关文章

      网友评论

          本文标题:常用数据类型(一)

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