一维数组的定义与初始化
一维数组是一个只有一个下标的数组,用于表示一组相同类型的数据。 在c语言中,一维数组定义如下
类型说明符数组名称[常量表达式]在上述语法格式中,类型说明符表示数组中所有元素的类型,常量表达式表示数组的长度,即数组中存储的元素数。
范例
int array[5l;
上述代码定义数组。 其中int是数组类型,aray是数组的名称,方括号中的5是数组的长度。 数组定义完成后,只为数组中的元素打开了内存空间。 此时,如果想使用数组操作数据,还需要初始化数组。 数组初始化的一般方法有三种,具体如下
)1)直接为数组中的所有元素指定值。 示例代码如下所示。
inti [5]={ 1,2,3,4,5 };
上述代码定义了长度为5的数组I,数组中元素的值依次为1、2、3、4、5。
)2)只为数组中的某些元素赋值。 示例代码如下所示
inti [5]={ 1,2,3 };
在上面的代码中,定义了int类型的数组,但初始化时只为数组中的前三个元素赋值,其他元素的值默认设置为
)3)为数组中的所有元素赋值,但不指定长度。 示例代码如下。
inti [ ]={ 1,2,3,4 };
在上面的代码中,数组I的元素有四个,数组的长度由给定的初始化元素的数量定义。 因此,数组I的长度为4。
注意
(1)数组下标放在括号内,不是括号。
)数组名称的命名与变量名的命名规则相同;
)3)在数组的定义中,常数式的值可以是符号常数,定义如下是正当的。
int a[N]; //假设预编译命令#define N 4,下标为符号常数
一维数组引用
程序经常需要访问数组中的某些元素。 在这种情况下,可以使用数组名称和下标在数组中引用
请参阅。 一维数组元素的引用如下:
数组名称[下标]
在上述方式中,下标指向数组元素的位置,数组元素的下标从0开始。 例如,引用数组x的第三个元素的方法是X[2]。 为了便于理解数组元素引用列表下的行业通用房间示例,请执行以下操作:
#includestdio.h
voidmain(intargc,char *argv[] ) )。
intx [5]={ 2,3,1,4,6 };
int i;
for(I=0; i 5; I ) {
printf(%d(n ),2 * x[i];
}
}
结果如下图所示。
在上面的情况中,首先定义数组x,以下标的形式获取数组中的元素,最后将元素乘以2并输出。
注意
数组的下标有“0~[数组的长度-1]”的范围。 如果数组的长度为6,则下标范围为0~5。 访问数组中的元素时,下标不要超出此范围。 否则,程序会报告错误。
一维数组的常见操作
数组在编写程序时使用非常广泛。 灵活地使用数组对实际开发很重要,例如,需要频繁遍历数组、获取最大值和排序。 下面详细介绍一维数组的一般操作。 具体情况如下。
1、一维数组的遍历
在处理数组时,经常需要按顺序访问数组中的每个元素。 此操作称为数组遍历。 然后,使用for循环按顺序遍历数组中的元素,如下所示:
#includestdio.h
voidmain(intargc,char *argv[] ) )。
intx [5]={ 2,3,1,4,6 };
int i=0;
for(I=0; i 5; I ) {
printf(x ) %d ) :%d(n ),I,x ) I );
}
}
执行结果如下。
在上面的情况中,首先定义了长度为5的数组x,然后定义了变量。 数组的下标范围为0-4,因此可以将I的值作为下标依次访问数组中的元素,并输出元素的值。
2、一维数组的最值
使用数组时,经常需要获取数组中元素的最大值。 以下是一个案例研究,演示了如何获取数组中最大的数值。
#includestdio.h
intmain(intargc,char *argv[] ) ) ) )
intx [5]={ 2,3,1,4,6 }
};int nMax = x[0];
int i = 0;
for (i = 0; i < 5; i++) {
if (x[i] > nMax) {
nMax = x[i];
}
}
printf("max:%dn", nMax);
return 0;
}
运行结果如下
在上面案例找那个实现了获取数组X最大值的功能。在第5行代码中假定数组中的第1个元素为最大值,并将其赋值给nMax,在第7~13行代码对数组中的其他元素进行遍历,如果发现比mMax值大的元素,就将最大值nMx设置为这个元素的值,这样,当数组遍历完成后,nMax中存储的就是数组中的最大值。
3、一维数组的排序
在操作数组时,经常需要对数组中的元素进行排序。接下来为大家介绍一种比较常见的排序算法一冒泡排序。在冒泡排序的过程中,不断地比较数组中相邻的两个元素,较小者向上浮、较大者往下沉,整个过程和水中气泡上升的原理相似,接下来,分步骤讲解冒泡排序的整个过程,具体如下。
第1步,从第1个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前1个元素比后1个元素大,则交换它们的位置。整个过程完成后,数组中最后1个元素自然就是最大值,这样也就完成了第1轮的比较。
第2步,除了最后1个元素,将剩余的元素继续进行两两比较,过程与第1步相似,这样就可以将数组中第二大的数放在倒数第2个位置。
第3步,依次类推,持续对越来越少的元素重复上面的步骤,直到没有任何一对元素需要比较为止。
了解了冒泡排序的原理之后,接下来通过一个案例来实现冒泡排序。
在上面的案例中,通过嵌套for循环实现了冒泡排序。其中,外层循环用来控制进行多少轮比较,每一轮比较都可以确定1个元素的位置,由于最后1个元素不需要进行比较,因此,外层循环的次数为数组的长度-1,内层循环的循环变量用于控制每轮比较的次数,在每次比较时,如果前者小于后者,就交换两个元素的位置。下面通过一张动图来演示冒泡排血的运算过程。
学C++推荐http://yun.itheima.com/map/25.html?2020zylyk