数组(不是重点)--c语言个人笔记【五】

# c语言个人笔记

E.menos

代码规范性!!!

* 如何看懂一个程序?

1. 流程

2. 每个语句的功能

3. 试数

五. 数组

5.1 数组(不作为学习重点)

  • 为什么需要数组

1. 解决大量同类型数据的存储和使用问题
    2. 模拟现实世界( 一维 二维 三维 )

```c
    # include <stdio.h>

int main(void)
    {
        int a[5]={1,2,3,4,5};

//a是数组的米棒子, 5表示数组的个数, 这五个元素分别用a[0] - a[4]表示

int i;

for(i=0; i<5; ++i)
            printf("%d\n",a[i]);

//a[i]表示第 i+1 个元素

return 0;
    }
    ```

数组不作为学习的重点:数组长度是个死值且缺少很多功能(需要编程别的代码);故原始数组用处不多

5.2 数组的分类

  • 一维数组
        
        1. 定义
            + 为n个变量连续分配存储空间
            + 所有变量的类型必须相同
            + 所有变量所占字节必须相等
        
        2. 操作
            + 初始化
              + 完全初始化
                    int a[5] = {1,2,3,4,5};

+ 不完全初始化
                int a[5] = {1,2,3};
            不完全初始化,未被初始化的元素为0
        不初始化,所有的元素都是垃圾值
        int a[5];p
          + 清零
            q   int a[5] = {0};
          + 错误写法
            c                 int a[5];                 //定义时的“5”是指个数,定义后出现的“5”时是下标                 a[5] = {1,2,3,4,5};
            只有在定义数组的同时才可以整体赋值
            其他情况下整体赋值都是错误的
            c                 int a[5]={1,2,3,4,5};                 a[5] = 100; //error 因为没有a[5]这个元素,最大是a[4]
            c                 int a[5] = {1, 2, 3, 4, 5};                 int b[5];                 //要把a数组的元素全部赋值给b数组                 //错误写法:    b = a;                 //正确写法:                 for (i=0; i<5; ++i)                     b[i] = a[i];
            一维数组名不代表数组中的所有的元素
            一位数组名代表数组第一个元素的地址
        + 赋值
        + 排列
        + 求最大/小值
        + 倒置
        + 查找
        + 插入
        + 删除

  • 二维数组
        ```c
            int a[3][4];
            //共有12个元素,看作三行四列,元素的名字分别为
            //a[0][0] a[0][1] a[0][2] a[0][3]
            //a[1][0] a[1][1] a[1][2] a[1][3]
            //a[2][0] a[2][1] a[2][2] a[2][3]
            //a[3][0] a[3][1] a[3][2] a[3][3]

//a[i][j]表示第i+1行 第j+1列的元素;
        //int a[i][j]:该二维数组右下角位置的元素只能是a[i-1][j-1];
    c
        初始化:
            int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
            int a[3][4] = {
                {1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12}
            };
    操作:输出二维数组内容c
    #include <stdio.h>

int mian(void)
    {
        int a[3][4] = {
                {1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12}
            };

//输出二维数组内容
    
        for (i=0; i<3; ++i)
        {
            for (j=0; j<4; ++j)
                printf("%d\n",a[i][j]);
            printf("\n")
        }
        }
    ```

  • 多维数组

+ 是否存在多维数组
        不存在
        因为内存是线性一维的
        n维数组可以当做每个元素是n-1维数组的一维数组
            比如
                int a[3][4];
                    该数组是含有三个元素的一维数组
                    只不过每个元素都可以再分成4个小数组
                int a[3][4][5];
                    该数组是含有三个元素的一维数组
                    只不过每个元素都是4行五列的二维数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值