一维数组
要想把数据放入内存,必须先要分配好内存空间,放入4个整数,就得分配4个int类型的内存空间,记作int a[4],我们把这样的一组数据的集合称为数组,它所包含的每一个数据叫做数组元素,所包含的数据的个数称为数组长度,数组的长度是常量。
例如int a[4]就是定义了一个长度为4的整型数组,当然还有其他的
int a[4];//定义了一个有4个整形元素的数组a;
char a[4];//定义了一个有4个字符型元素的数组a;
float a[4];//定义了一个有4个浮点型元素的数组a;
数组中的每个元素都有一个序号,这个序号从0开始,而不是从我们熟悉的1开始,称为下标。
以int a[4]为例
a[0]=20;
a[1]=345;
a[2]=700;
a[3]=22;
这里的0、1、2、3就是数组下标,a[0]、a[1]、a[2]、a[3] 就是数组元素。数组下标一定是从0开始的,而且一定一定不能越界。
一维数组的初始化:
类型名 数组名[数组长度]={初值表};
.int a[4] = {2, 3, 70, 222};`
还有几种特殊的
1,可以只给部分元素赋值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:
int a[10]={12,22,3,4,56};
表示只给 a[0]~a[4] 5个元素赋值,而后面 5 个元素自动初始化为 0。
2,只能给元素逐个赋值,不能给数组整体赋值。例如给 10 个元素全部赋值为 1
int a[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
3,给全部元素赋值,那么在定义数组时可以不给出数组长度。例如:
int a[] = {1, 2, 3, 4, 5};
等价于
int a[5] = {1, 2, 3, 4, 5};
int a[10]={1,2,3,4,5,6,7,8,9,0};
就是a[0]为1;
a[1]为2;
......
a[9]为0;
在学习过程中,我们经常会使用循环结构将数据放入数组中,然后再使用循环结构输出。
下面给出如何将0-9存入数组中并输出
#include <stdio.h>
int main()
{
int i;
int a[10];
for(i=0; i<10; i++)
{
a[i] = i;
}
for(i=0; i<10; i++)
{
printf("%d ", a[i]);
}
return 0;
}
运行结果
0 1 2 3 4 5 6 7 8 9
变量 i 既是数组下标,也是循环条件;将数组下标作为循环条件,达到最后一个元素时就结束循环。数组 a 的最大下标是 9,也就是不能超过 10,所以我们规定循环的条件是 i<10,一旦 i 达到 10 就得结束循环。
再给出一个自己输入存储到数组中的代码吧
#include <stdio.h>
int main()
{
int i;
int a[10];
for(i=0; i<10; i++)
{
scanf("%d", &a[i]);
}
for(i=0; i<10; i++)
{
printf("%d ", a[i]);
}
return 0;
}
运行结果
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
数组的内存是连续的
可以理解为数组是一个整体,它的内存是连续的;也就是说,数组元素之间是相互挨着的,彼此之间没有一点点缝隙。