黑马程序员——C基础——数组

来源:互联网 发布:淘宝聚划算提前购物车 编辑:程序博客网 时间:2024/04/30 03:06

-----------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、二维数组的第一个数据是行数,第二个数据是列数。









0 0