C语言零基础速通——数组(7分钟搞懂)

发布于:2023-01-04 ⋅ 阅读:(241) ⋅ 点赞:(0)

1. 一维数组


定义形式:

数据类型    数组名[整型常量表达式]

eg.

int apple[5];//数组定义


初始化形式(初始化有时会和定义在一起):

数组名[]={元素}

tips:[]内的长度可有可无

eg.

int apple[5]={1,3,5,7,9};//数组定义+初始化

tips:

  1. 数组的数据类型就是数组元素的数据类型

  2. 定义数组的[]内的整型常量表达式为数组长度

  3. 定义数组时[]内有整型数,初始化的时候可以省略。

  4. 定义数组时[]内不能是变量

  5. 同一数组内数组元素的数据类型相同

  6. 初始化的时候若元素数小于数组长度是可行的,剩余长度用0填满。

    eg.

  7. int a[10]={1,2,3}

7.   数组长度是在定义的时候根据[]内的数开拓内存,即数组的内存是根据            长度定死的,与其元素具体是什么无关。

以下为错误示例!

  • 定义出错

  1. int apple[];//错!【】内没数字

 int len=5;int apple[len];//错!【】内不能是变量!

  • 初始化出错:

  • int apple[5];apple={'A','P','P','L','E'};//错!数组元素为字符型,不是整型

char apple[4];apple={'A','P','P','L','E'};//错!数组元素数多于数组长度,导致数据溢出,‘E’存不进去


数组的调用形式:

数组名[下标]

eg.

#include<stdio.h>main(){  int a[5];  a[]={1,2,3,4,5};  printf("%d",a[0]);  printf("%d",a[1]);  printf("%d",a[2]);  printf("%d",a[3]);  printf("%d",a[4]);}

可以运行体验一下,也可以改动下标试试

tips:

  1. 下标的范围:从0开始,到数组长度-1

  2. 调用数组时以a[5]数组为例,a[0]是第一个数组元素

    下标为0的为数组的第一个元素!(常考点!!!)

    下标为1的为数组第二个元素,以此类推...

  3. 数组的每个元素对应一个下标,是一一对应关系


  • 一维数组的常见操作:(会在第九章后进行具体化补充

  1.     排序

  2.     插入和删除

  3.     查找


2. 二维数组


定义形式:

数据类型  数组名[常量表达式1][常量表达式2]

eg.

int a[2][3];


初始化形式:(两种均🉑️)

  1. 数组名[常量表达式1][常量表达式2]={元素1,元素2,...,元素n}

  2. 数组名[常量表达式1][常量表达式2]={{元素1,元素2,...,元素x1},{元素1,元素2,...,元素x2},...{元素1,元素2,...,元素xn}}

(内层{}表示每一行)

eg.

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

等价于

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

tips:

  1. 常量表达式1表示行,常量表达式2表示列

  2. 行、列下标均从0开始

  3. 数组大小为行乘列

  4. 常量表达式1代表的行优先存,存完行再存列

  5. 其余与一维数组类似


二维数组的引用:

数组名[行下标][列下标]

eg.

#include<stdio.h>main(){  int a[2][3];//定义  a[2][3]={{1,2},{3,4},{5,6}};//初始化  printf("%d",a[0][1]);//注意下标从0开始! }

可以改动printf()中的下标,运行一下进行体验

tips:

  1. 重申一下,下标从0开始,此为常考点和常错点!

  2. 注意不要出现下标溢出情况!


3. 字符串处理


较复杂,在第九章后会具体化举例,此处先初步了解

字符串可以看作是字符数组,结尾自动加\0。

初步例举常用函数

  • strlen函数

    作用:求字符串长度(不含‘\0’)

  1. strlen(字符数组名)

  • strcpy函数

    作用:字符串复制函数,将字符数组2复制到字符数组1

  • strcpy(字符数组名1,字符数组名2)

  • strcat函数

    作用:将字符串2的内容连接到字符串1的内容后

  • strcat(字符数组名1,字符数组名2)

  • strcmp函数

    作用:  比较字符串1和字符串2的大小,从左至右逐个字符比较ASCII码,直到出现不同或遇'\0'

    str1<str2 返回-1
    str1=str2 返回0
    str1>str2 返回1

strcmp(字符数组名1,字符数组名2)

下一章节:函数(章节:7/9)


p.s. 

        小红书,知乎等平台搜索知识薪火站(或youzuos),也会上传相应笔记,感谢关注。

        有建议欢迎提出!

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到