• C语言学习——数组初学


    目录

    一、初探程序中的数组

    1.数组的概念

    2.数组的定义

     3.数组元素的访问

    二、数组特性深入剖析

    1.数组的初始化

    2.数组的内存分布


    一、初探程序中的数组

    1.数组的概念

    数组是相同数据类型变量的有序集合
    —数组作为整体需要一个合法的命名(数组名)
    —数组中的变量没有独立命名,只有在数组中的编号
    —数组中的变量数量是固定不变的(数组大小固定)

    2.数组的定义

    语法:tpye Name [ size ]

    示例: 

    1. int arr1[10]; //定义名为 arr1 的数组
    2. //数组中一共有 10 个元素
    3. //每个元素的类型为 int
    4. double farr[5]; //定义名为 farr 的数组
    5. //数组中一共有 5 个元素
    6. //每个元素的类型为double

     3.数组元素的访问

    a.通过数组名 [下标] 的方式来访问元素
    b.数组是一个有序的集合,每个元素有固定的下标
    c.数组元素下标固定从0开始(可以使用变量作为下标)

    示例:

    1. int arr1[3];
    2. arr1[-1] = 0; //ERROR
    3. arr1[0] = 1;
    4. arr1[1] = 2;
    5. arr1[2] = 3;
    6. arr1[3] = 4; //ERROR

     注意事项:

    1.只有整型数才能作为数组的下标访问元素
    2.下标越界是一种非常严重的编辑错误(工业级BUG来源)
    3.下标越界带来的后果可能不会立即体现

    二、数组特性深入剖析

    1.数组的初始化

    —语法:type Name [N] = { V0, V1, ... , Vn-1};
    —意义:将数组中的元素分别初始化为 V0, V1, ... , Vn-1
    1. int main ()
    2. {
    3. int arr[5] = {2,4,5,5,6};
    4. int i = 0;
    5. for (i = 0 ;i<5 ;i++)
    6. {
    7. printf("arr[%d] = %d \n", i, arr[i]);
    8. }
    9. return 0;
    10. }

    数组初始化技巧

    (1)自动确认数组大小
    type Name [] = {V0, V1, ... , Vn-1};

    (2)将部分数组元素初始化为0
    /* s < N ,未指定初始值的元素默认为0*/
    type Name [N] = {V0, V1, ... , Vs};

    (3)将全部元素初始化为0
    type Name [N] = {0};

    2.数组的内存分布

    数组在计算机底层是一片连续的内存,用于储存数组元素
    —数组的大小字节数可以用sizeof()获取(单位为字节)

    计算数组大小

    type Name [] = {V0, V1, ... , Vn-1}; // 一共n个元素
    sizeof(Name)/ sizeof( Name[0] ); // 计算结果为n

    注意:
    1.数字名只能作左值使用(可以看作常量)
    2.只能使用整型常量对数组大小进行定义
    3.只能使用整型值对下标访问数组元素

    1. int size; //初始值多少?
    2. int arr[size]; //数组大小多少?
    3. int a[5] = {0};
    4. arr[1.5] = 1; //第1.5个变量是哪个
    5. arr = a; //常量不能作左值
  • 相关阅读:
    Mybatis简介(二)
    【云原生之Docker实战】使用docker部署Wiznote私人笔记系统
    使用HHDBCS管理Redis
    RK3568平台开发系列讲解(音视频篇)H264 的编码结构
    数据的处理包括哪些内容
    Java反射机制(详解)——获取class的三种方式
    腾讯云入侵
    设计模式-适配器模式(Adapter)
    数据流图:四大要素全解析!秘密就在这里
    MVC三层架构初解
  • 原文地址:https://blog.csdn.net/2301_80366509/article/details/139304647