数组基本概念
- 数组是相同类型、有序数据的集合,用统一的数组名来表示,数组中的每个分量—-元素用下标来区分。
- 数组的特点:
- 数组中的元素是同构的(类型相同)。
- 数组中的元素是存放在连续的内存空间上的。
- 如何表示元素在数组中的相对位置?
- 答案:下标(索引)
- 下标的含义:数组中的元素距离第一个元素的偏移;下标从0开始
- 定义一维数组
- 下标的含义:数组中的元素距离第一个元素的偏移;下标从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] 含义 :访问数组中第一个元素
- 注意:数组不能整体访问 只能按元素访问;
- 冒泡排序
- 例子: 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;
- int temp = array[k];
- }
- if(array[k]>array[k+1])//将最大值排到最后
- }
- for(int k= 0;k
- }
- 定义二维数组
- {
- for(int j =0;j<n-1;j++)
- 类型说明符 数组名[常量表达式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}};
- 矩阵转置
- 转置核心代码

- 字符数组
- 转置核心代码
- 矩阵转置
- 用于存放字符的数组,往往是用于存放字符串的;
- 字符数组创建:一维和二维;
- char 数组名[常量表达式]; 一维字符数组
- char 数组名[常量表达式1][常量表达式2]; 二维字符数组
- char 数组名[常量表达式]; 一维字符数组
- 字符数组初始化
- char c[10]={‘I’,’ ‘,’a’,’m’,’ ‘,’h’,’a’,’p’,’p’,’y’};
- 可以用字符常量初始化字符数组。
- char str[]={‘c’,’l’,’a’,’n’,’g’,’e’};
- char str[]={‘c’,’l’,’a’,’n’,’g’,’e’};
- 可以使用字符串常量初始化字符数组
- char c[ ]={“I am happy”};或char c[ ]=”I am happy”;
- 注意:c数组的长度为11,有结束符。
- ① 如果定义时不初始化,元素值不确定;
- ② 如果提供的字符个数大于数组长度,则按语法错误处理;
- 如果字符个数小于数组长度,后面的元素自动为空字符(‘\0’);
- ③ 如果提供的字符个数与数组长度相同时,可省略数组长度,系统会自动确定元素个数。适合字符个数较多时。
- ① 如果定义时不初始化,元素值不确定;
- char c[ ]={“I am happy”};或char c[ ]=”I am happy”;
- 可以用字符常量初始化字符数组。
- char c[10]={‘I’,’ ‘,’a’,’m’,’ ‘,’h’,’a’,’p’,’p’,’y’};
- 字符串和字符串结束标志
- C语言规定,字符串以字符’\0’作为结束标志
- 编译系统对字符串常量自动加一个’\0’作为结束标志
- 程序中往往通过判断’\0’来检测字符串是否结束
- ‘\0’的ASCII码为0,不是一个可显示的字符,是“空操作符”,什么都不做,不会增加有效字符,仅是一个供判别的标志
- C语言规定,字符串以字符’\0’作为结束标志
- 注:特别需要指出的是,利用字符串常量可以对字符数组进行初始化,但不能用字符串常量为字符数组赋值。
- 可以初始化不能赋值。
- 可以初始化不能赋值。

