数组基本概念

    • 数组是相同类型、有序数据的集合,用统一的数组名来表示,数组中的每个分量—-元素用下标来区分。
      • 数组的特点:
    • 数组中的元素是同构的(类型相同)。
    • 数组中的元素是存放在连续的内存空间上的。
      • 如何表示元素在数组中的相对位置?
    • 答案:下标(索引)
      • 下标的含义:数组中的元素距离第一个元素的偏移;下标从0开始
        • 定义一维数组
    • 类型说明符 数组名[常量表达式];
      • 类型说明符定义数组中各元素的数据类型;
      • 常量表达式说明数组的大小(即数组中元素的个数)。
    • 数组元素表示形式 数组名[下标]
      • 一维数组初始化
    • 在定义时对各元素赋初值 int a [5]={0,1,2,3,4};
    • 可以只给数组的前若干个元素赋初值,此时后面的元素均将自动赋以初值0。如: int a[10]={0,1,2,3,4};
    • 若要全部元素值为0,可以写成:int a[10]={0,0,0,0,0,0,0,0,0,0};或 int a[10={0};
      • 一维数组的访问
    • 格式: 数组名[下标]
      • 例子: scores[0] 含义 :访问数组中第一个元素
      • 注意:数组不能整体访问 只能按元素访问;
        • 冒泡排序
    • 核心算法
      • for(int j =0;j<n-1;j++)
        • {
          • for(int k= 0;k
          • {
            • if(array[k]>array[k+1])//将最大值排到最后
            • {//进行交换,可以封装为一个函数
              • int temp = array[k];
              • array[k] = array[k+1];
              • array[k+1] = temp;
            • }
          • }
        • }
          • 定义二维数组
    • 类型说明符 数组名[常量表达式1][常量表达式2];
      • 二维数组在计算中的存储 使按行存储 (二维数组在内存中存放时 本质上还是个一维数组)
        • 二维数组的引用
    • 数组名[下标1][下标2];
      • 使用时数组元素的下标应在已定义数组的大小范围内;应注意区别定义数组大小和引用数组元素的区别(注意越界)。
        • 二维数组的初始化
    • 若对全部元素赋初值,则定义数组时可以不说明一维的长度(一对方括号不能省),第二维的长度必须说明;如:int a[ ][4]={1,2,3,4,5,6,,7,8,9,10,11,12};
    • 在分行赋初值时,也可以省略第一维的长度说明。如:int a[][4]={{1,2,3},{0},{0,10}};
      • 矩阵转置
        • 转置核心代码
          • C语言数组(2021.5.24) - 图1
            • 字符数组
    • 用于存放字符的数组,往往是用于存放字符串的;
    • 字符数组创建:一维和二维;
      • char 数组名[常量表达式]; 一维字符数组
      • char 数组名[常量表达式1][常量表达式2]; 二维字符数组
    • 字符数组初始化
      • char c[10]={‘I’,’ ‘,’a’,’m’,’ ‘,’h’,’a’,’p’,’p’,’y’};
        • 可以用字符常量初始化字符数组。
          • char str[]={‘c’,’l’,’a’,’n’,’g’,’e’};
        • 可以使用字符串常量初始化字符数组
          • char c[ ]={“I am happy”};或char c[ ]=”I am happy”;
          • 注意:c数组的长度为11,有结束符。
            • ① 如果定义时不初始化,元素值不确定;
            • ② 如果提供的字符个数大于数组长度,则按语法错误处理;
            • 如果字符个数小于数组长度,后面的元素自动为空字符(‘\0’);
            • ③ 如果提供的字符个数与数组长度相同时,可省略数组长度,系统会自动确定元素个数。适合字符个数较多时。
    • 字符串和字符串结束标志
      • C语言规定,字符串以字符’\0’作为结束标志
      • 编译系统对字符串常量自动加一个’\0’作为结束标志
      • 程序中往往通过判断’\0’来检测字符串是否结束
      • ‘\0’的ASCII码为0,不是一个可显示的字符,是“空操作符”,什么都不做,不会增加有效字符,仅是一个供判别的标志
    • 注:特别需要指出的是,利用字符串常量可以对字符数组进行初始化,但不能用字符串常量为字符数组赋值。
      • 可以初始化不能赋值。
        • C语言数组(2021.5.24) - 图2