-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
数组的定义:顾名思义,数组就是用来存储一组数据的。
数组的特点:
1.数组只能够存储一种类型的数据。比如说int类型、float类型等。
2.数组里面的数据称为元素。
3.数组必须在定义的时候就确定其大小,定义过后它的大小就不能再改变了。
数组的定义有两种形式,第一种是:
数据类型 数组名[数组大小];数组名[数组大小] = {数据1,数据2,...,数据n}; 这种形式定义的数组明确的写出了数组的大小,然后再往里面写入数据,这里要注意写入的数据的个数不能够大于数组的大小。这种形式也可以在定义数组的同时对其进行初始化,形式为:数据类型 数组名[数组大小] = {数据1,数据2,...,数据n};
第二种形式:
数据类型 数组名[] = {数据1,数据2,...,数据n}; 这种形式的定义的数组没有直接写出数组的大小,但是我们的数组大小也是确定的,它是根据输入的数据的个数来判断数组的大小,输入n个数据的话数组的大小也就是n。这种形式只能定义和初始化同时进行。
下面我们分别用上面的两种形式来定义一个int类型的数组,并对其进行初始化。
int a[5];
a[5] = {1, 2, 4, 6, 3};
上面定义的数组a[5]的大小就是5。我们还可以这样对其初始化:
int a[5];
a[5] = {1, 2, 4, 6};
上面我们定义的数组的大小就是5,但是我们对其初始化的时候只写了四个数据,那么第五个数据是什么呢?这里C语言对未进行赋值的元素都有一个默认的值。int类型的数据默认的就是0。
下面我们用上面的第二种形式来定义一个int类型的数组,并对其进行初始化:
int a[] = {3, 6, 8, 10, 23};
这里我们虽然没有直接定义数组的大小,但是从输入的元素的个数我们可以得知数组a的大小是5。
下面我们学习数组的遍历,遍历就是访问数组中的所有元素。数组中的每个元素都有一个名字,它的名字就是数组名加上它的元素标号。数组的元素标号是从0开始的,也就是说数组的第一个元素的标号就是0。比如说下面的数组:
int a[4] = {3, 6, 8, 10};
上面的数组中的元素名就是从a[0]到a[3]四个元素名。下面我们来遍历这个数组:
for (int i = 0; i < 4; i++)
printf("a[%d] = %d\n", i, a[i]);
上面的代码的输出结果就是:
a[0] = 3
a[1] = 6
a[2] = 8
a[3] = 10
下面我们学习怎么得到数组的长度。
想要得到数组的长度需要调用一个C语言自带的函数sizeof。sizeof函数返回的值是数组所占用的内存大小,它一个unsigned long类型的数据,下面我们通过代码来学习sizeof函数的用法。
#include <stdio.h>
int main()
{
int a[] = {3, 6, 8, 10, 43, 65};
printf("数组所占用的空间是%lu个字节\n", sizeof(a));
printf("数组的大小是%lu\n", sizeof(a)/sizeof(int));
return 0;
}
上面的代码中sizeof(a)返回的是数组a所占的空间的大小,但这并不是数组的长度。由于这是一个int类型的数据,一个int类型的数据占用的空间大小是四个字节。所以要计算数组的大小需要再除以int类型数据所占用的字节大小,所以数组的大小就是sizeof(a)/sizeof(int)。
下面我们来学习二维数组。二维数组的定义形式就是:数组类型 数组名[数值1][数值2];
下面我们通过代码学习二维数组的定义遍历:
#include <stdio.h>
int main()
{
// 定义一个二维数组并初始化
int a[3][2] = {
{1, 2},
{3, 4},
{5, 6}
};
// 数组元素的遍历
for (int i = 0; i < 3; i++)
for (int j = 0; j < 2; j++)
printf("a[%d][%d] = %d\n", i, j, a[i][j]);
return 0;
输出结果是:
a[0][0] = 1
a[0][1] = 2
a[1][0] = 3
a[1][1] = 4
a[2][0] = 5
a[2][1] = 6
注意二维数组在定义的同时必须写上大小,这一点是与一维数组不一样的,一位数组可以不写上它的大小,但是必须在定义的同时进行初始化。
二维数组名后面的第一个数值的大小代表它的行数,第二个数值的大小代表它的列数。
总结:
1、数组分为一维数组和二维数组。
2、数组中只能存放一种数据类型,不能多种类型混放,比如说即放int类型的数据又放char类型的数据。
3、数组定义了大小之后就不能再进行大小上的更改了。
4、二维数组的第一个数据是行数,第二个数据是列数。