目录
  • 1.一维数组
    • a.一维数组的创建
    • b.一维数组的初始化
    • c.一维数组的使用
    • d.一维数组在内存中的存储
  • 2.二维数组
    • a.二维数组的创建
    • b.二维数组的初始化
    • c.二维数组的使用
    • d.二维数组在内存中的存储
  • 3.数组越界
    • 4.数组作为函数参数
      • 5.数组名

        1.一维数组

        数组的定义: 数组是一组相同类型元素的集合

        a.一维数组的创建

        数组的创建格式为: 数组的类型 数组名[ 常量表达式] ;

        C语言数组快速入门详细讲解

        关于数组创建易错点:

        C语言数组快速入门详细讲解

        b.一维数组的初始化

        类似于给整型变量初始化的过程:

        int a=2; int b=5; int c=66;

        C语言数组快速入门详细讲解

        关于数组初始化易错点:

        字符串的结束标志是 \0

        特别注意:数组长度和字符串长度不是一个东西

        C语言数组快速入门详细讲解

        #include <stdio.h>
        #include <string.h>
        int main()
        {
        	int arr1[3] = { 1,2,3 };
        	//数组有1、2、3这三个元素
        	int arr2[4] = { 1,2,3 };
        	//数组有1、2、3、0这四个元素
        	int arr3[4] = { 0 };
        	//数组有0、0、0、0这四个元素
        	char ch4[5] = "dat";
        	//数组有d、a、t、\0、0这五个元素
        	char ch5[] = "dat";
        	//数组有d、a、t、\0这四个元素
        	char arr6[] = "abc";
        	//数组有a、b、c、\0四个元素,该数组长度为3,字符串长度为3
        	char arr7[] = {'a','b','c'};
        	//数组有a、b、c三个元素,该数组长度为3,字符串长度为随机值
        	printf("%d\n", strlen(arr6));//3
        	printf("%d\n", strlen(arr7));//随机值
        	printf("%s\n", arr6);//得abc
        	printf("%s\n", arr7);//abc乱七八糟
        	return 0;
        }

        c.一维数组的使用

        访问数组中的某个元素用到[ ]下标引用操作符, 数组是使用下标来访问的,下标是从0开始

        计算数组的大小如下代码:

        #include <stdio.h>
        int main()
        {
            int arr[10] = {0};
            int sz = sizeof(arr) / sizeof(arr[0]);
            printf("则数组的大小为%d\n",sz);
            return 0;
        }

        d.一维数组在内存中的存储

        一维数组在内存中连续存放

        数组的存放地址由低到高变化,看代码:

        C语言数组快速入门详细讲解

        2.二维数组

        一维数组长这样:

        int arr [ 10 ]= { 0 } ;

        二维数组长这样:

        int arr [ 3] [4 ]= { {1,2}, {3,4}} ;

        C语言数组快速入门详细讲解

        a.二维数组的创建

        int arr1 [ 3 ] [ 4 ] ; 三行四列

        char arr2 [ 4] [ 4 ] ; 四行四列

        float arr3 [ 3 ] [ 6] ; 三行六列

        特别注意:二维数组中,行可以省略,如:

        int arr [ ] [ 4 ] ;

        b.二维数组的初始化

        int arr1 [ 3 ] [ 4 ] = {1,2,3,4,5};

        第一行: 1 2 3 4

        第二行: 5 0 0 0

        第三行: 0 0 0 0

        char arr2 [ 4] [ 4 ] ={ {1,2} , {3,4} } ;

        第一行: 1 2 0 0

        第二行: 3 4 0 0

        第三行: 0 0 0 0

        第四行: 0 0 0 0

        float arr3 [ 3 ] [ 6] = { {1,2} , {3,4} , {5,6,0,2} } ;

        第一行: 1 2 0 0 0 0

        第二行: 3 4 0 0 0 0

        第三行: 5 6 0 2 0 0

        特别注意:未完全初始化的部分都是0

        c.二维数组的使用

        和一维数组相同,二维数组的使用也是通过下标的方式实现, 行和列的顺序,以及下标的的顺序不能错哦

        C语言数组快速入门详细讲解

        d.二维数组在内存中的存储

        通过下图,我们发现:

        二维数组在内存中也是连续存储的

        数组的存放地址也是由低到高变化

        C语言数组快速入门详细讲解

        3.数组越界

        数组的下标是有限制的

        规定:数组下标从0开始,最后一个元素下标为n-1

        看以下代码:

        i=3;则有0 1 2 3 四个下标就有四个元素,

        j=4;则有0 1 2 3 4 五个下标就有五个元素

        C语言数组快速入门详细讲解

        4.数组作为函数参数

        这里用个冒泡函数:将元素排序,来举例

        这个代码通过调试,才能得出效果

        #include <stdio.h>
         
        void bubble_sort(int arr[], int sz)
        {
            int i = 0;
            for (i = 0; i < sz - 1; i++)
            {
                int j = 0;
                for (j = 0; j < sz - i - 1; j++)
                {
                    if (arr[j] > arr[i])
                    {
                        int tmp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = tmp;
                    }
                }
            }
        }
        int main()
        {
            int arr[] = { 1,3,6,8,2,9 };
            int sz = sizeof(arr) / sizeof(arr[0]);
            bubble_sort(arr, sz);
            return 0;
        }

        5.数组名

        C语言数组快速入门详细讲解

        数组名就是首元素的地址(俩个例外)

        1.sizeof(数组名)计算的是数组的大小

        2.&数组名,取出的是数组的地址

        声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。