一、数组的特点
- 数组是同一种数据类型
- 所有的数据是相邻的
- 不能扩充不可变(一但定义大小就不能更改)
- 数组中的数据访问从零开始
- 存储数据分:数值和字符型
二、定义数组
- int num[ 5 ]
- 定义数组的标志就是[ ] ,[ ] 中的数值为个数。
- 变量在数组中称元素。
- 引用时数组元素表示方式:数组名[ 下标 ]
三、数组的初始化
定义时赋值,按数组访问顺序依次给数组元素赋初值,初值不能超过数组元素个数;如果少于元素个数,则系统默认以0来赋初值。(整型数0,实型数:0.0,字符型:ASCII码为0或 ‘\0’ )
- int num [ 5 ] = { 0 } ; {}=>定界符
- 给数组定义时,如果{ 0 }表示数组中的所有元素都初始化为零;
- 如果 { 1 },表示第一个元素初始化为1,其他为零;
- 如果{ 1 ,2} ,表示数组中第一个和第二个元素初始化为1,2 ,其他元素为零;
- 如果只定义了数组,没有初始化,元素的值是随机的。
- 数组中的元素是通过数组+下标的方式进行访问
四、数组的赋值
若先定义后赋值;
数值型:不能通过数组名的形式一次给一组数据赋值
例:
// 注意不能这样赋值
int a[5];
a={
1,2,3,4,5}; // 不能整体赋值,但可以在定义时初始化
// 正确赋值形式
// 第一种
int a[6] = {
1,20} ;
a[3]=15; // 指定元素赋值,数组元素相当于变量
// 不能一次给整个数组赋多个值,可以给一个元素赋值
//第二种 利用循环给数组赋值
int i ;
int a[6];
for(i=0;i<6;i++)
a[i]=i+1;
//一维数组用一个循环就可赋值,注意循环执行次数,下标用变量来控制
字符型数组赋值
//可以在初始化时赋值
char str1[15]="Hello world"; // 利用字符串赋值
char str2[15]={
'a','b','c','4'}; // 利用一个字符一个字符的赋值
//给单独数组元素赋值
str2[4]='\0';
str[5]=getchar();
//利用字符串函数来实现赋值操作
scanf("%s", 数组名); //给一个数组赋一个字符串
gets(数组名);
strcpy(数组名1,数组名2或字符串); //将数组2赋给数组1,或将字符串赋给数组1
四、冒泡排序
代码如下(示例):
#include <stdio.h>
int main (){
int num [5] = {
14,8,27,0,89};
int temp = 0;
// 冒泡排序开始
// 外循环
for (int i = 0; i