zoukankan      html  css  js  c++  java
  • C语言之数组

    数组

               数组就是在内存空间中,开辟一个大的空间,然后再将这个大的空间均的分为若干份的小空间,每个小空间用来保存一个数据.

    1). 数组的专业术语:

                         长度:指的能存放数据的个数

                         下标/索引:每一个数据所在小空间的编号

                         元素:每个小空间里面实际存放的数据

    2). 数组的声明和赋值

    A.声明

                          类型 数组名[要保存的数据的个数];

                          例: int scores [5];               //代表一个保存了五个int类型数据的数组,数组名为scores;

                                char chs [5];               //代表一个保存了五个char类型数据的数组,数组名为chs;

                                    float fs [5];                   //代表一个保存了五个float类型数据的数组,数组名为fs;

    B.赋值

           a.对声明完成的数组进行逐一赋值

                         数组名 [下标] = 数据;

                         例:int scores[5];

                                    scores[0] = 100;                  //为下标为0的元素赋值为100

                                               scores[1] = 1;

                                    …………

                                    scores[4] = 100;

                        

      注:数组的下标总是从0开始,下标最大的数为数组的长度减1;

              

           b.在数组声明的时候就初始化

                         语法

                  1.

                         类型 数组名[长度] = {数据1,数据2,数据3,…..数据n};

                                注:长度有多少个,数据就写多少个

                         例: int scores [5] = {90,93,23,54,65}; // 数据会从0开始依次赋值

                  2.

                         类型 数组名[] = {数据1,数据2,数据3,…..数据n};

                                注:编译器会自动根据右边花括号中得数据个数确定你数组的长度

                         例: int scores [] = {90,93,23,54,65}; // 长度为5

                                char chs [] = {'a','b','c'}; //长度为3

         3.

                         类型 数组名[5] = {数据1,数据2};//数据不足5个

                         例: int scores [] = {90,93}; // 这样赋值,只有下标0和1有值,分别是90和93,其他元素没有值,系统会为这些没有没有值的元素初始化为0

                                注:部分初始化的话,其他没有赋值的元素会被初始化为0

         4.

                         类型 数组名[5] = { [4] = 数据,[3] = 数据,[2] = 数据,[1] = 数据,[5] = 数据};            //这种是人为的指定给下标为几的元素赋值

                         例: int scores [5] = {[4] = 45,[3] = 67,[2] = 89,[1] = 27,[5] = 86};

                                注:很少这样用

    3). 数组的取值

                         语法:        数组名 [下标];

                         例:   nums [0]; //取的下标为0的元素    也是就是数组种第一个数据           

              nums [3]; //取的下标为3的元素   也就是数组中第四个数据

    4). 遍历数组

                         就是代表循环这个数组依次的访问每个元素

        例:

                         int scores [5] = {89,76,88,50,99}

                         for(int i = 0;i < 5; i++){

                                    printf(“%d ”,scores[i]);// i的值依次是0,1,2,3,4,刚好对应上面访问的下标

            }

    5). 数组的越界

                         越界:就是访问了不属于自己的空间,可能会造成无法预知的后果,要么就是破坏了别的数据,要么就是运行报错

                         例: int scores [5] = {89,76,88,50,99}

                                    scores[10] = 200;               //越界了

    6). 数组长度的公式

                         数组占用的总字节数 / 每一个元素占用的字节数 = 小空间的个数(数组的个数)    

                         sizeof(数组名)  /  sizeof(数组类型)  

           注:sizeof不是函数,是运算符   

    7). 数组作为函数的参数   **********

                         声明数组的时候是必须写长度的,但是把数组作为函数的参数时,定义形参的时候,可以不写长度,代表所有长度同类型的数组都可以传过去.

               注:在C语言中,除了数组以外,都是值传递,而数组的传递是引用的传递,所以形参的值发生变化,实参的值也会发生改变;但是数组的元素就是一个普通的变量,所以如果是数组的元素作为函数的参数时,同样是值传递;

    不忘初心,方得始终
  • 相关阅读:
    网络流练习
    Noip2018 游记
    4719: [Noip2016]天天爱跑步
    1875: [SDOI2009]HH去散步
    P2619 [国家集训队2]Tree I
    1493: [NOI2007]项链工厂
    P1710 地铁涨价
    P3694 邦邦的大合唱站队
    P1439 【模板】最长公共子序列
    P1132 数字生成游戏
  • 原文地址:https://www.cnblogs.com/jialiangliang/p/6019704.html
Copyright © 2011-2022 走看看