黑马程序员——C语言数组

来源:互联网 发布:妹子自慰 知乎 编辑:程序博客网 时间:2024/05/02 22:27

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


一、数组的概念和定义


   1. 数组就是用来存储一组数据的(只能存放一种类型的数据,比如int类型的数组、float类型的数组

   2. 定义格式:元素类型   数组名 [元素个数]

        例如    :       int          ages   [  5  ]

   3. 简单初始化:int  ages[5]={ 2, 23, 45, 21, 19 }   (大括号中的每个数称之为数组元素)

   4. 元素有顺序之分,每个元素都有一个唯一的下标,从0开始(用ages[i]可以访问数组中的每个元素)

       int  ages[5]={ 2, 23, 45, 21, 19 }         ages[0]={ 2 },  ages[1]={ 23 },.....................

   5. 数组的初始化方式 

       int a[3] = {10, 9, 6};

       int a[3] = {10,9};

       int a[] = {11, 7, 6};

       int a[4] = {[1]=11,[0] = 7};

       int  count=5 ; int [count ]={11, 7, 6};

   6. 错误写法  

       int a[];

       int[4] a;

       int a[b];

       a = {10, 11};

       a[4] = {10,9,8,5};

       int a[count] = {11, 7, 6};


*结 论:(1)只能在定义数组的同时进行初始化

           (2)数组元素的数量[ ]只能是常量值

           (3)如果在定义数组的同时进行初始化,数组元素个数必须是常量,或者不写


  7. 数组的遍历 (按顺序查看数组的每一个元素)

     int  ages[5]={ 2, 23, 45, 21, 19 } ;

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

         { 

            printf("ages[%d]=%d\n",i,ages[i]);

         }

  8. 计算数组元素的个数

         int  ages[ ]={ 2, 23, 45, 21, 19 } ;

         int  count=sizeof(ages)/ sizeof(int);


二、数组的内存方式


   1. 存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的)

   2. 数组的地址就是首元素的地址

   3. 数组名就代表数组的地址


 *注意点:(1)数组作为函数参数,可以省略元素的个数

              (2)数组作为函数参数,传递的是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组

              (3)数组传递是地址传递(因为数组名就代表了数组的地址)

              (4)数组作为函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下占8个字节


三、练习(设计一个函数找出一个整形数组中元素的最大值)


       int maxOfArry(int a array[],int length)

          {

              int max=array[0];             // 定义一个变量存储最大值,默认最大值为首元素

  

              for (int i=0; i<length; i++)   //遍历所有元素找出最大值

                  { 

                       if a[i]>max

                           {

                                 max = a[i];     //如果当前元素大于max,就用当前元素覆盖max

                           }

                  }

            return max;

          }

    int main() 

        {

             int a[5]={3,5,9,10,3};

            int max=maxOfArray(a,sizeof(a)/sizeof(int));

           printf ("%d\n",max);

             return  0; 

        }


四、二维数组


   1.二维数组是一个特殊的一维数组,它的元素是一位数组

        int a[2][3]可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素

        

   2. 二维数组的定义格式

      int   ages [2][3]={

                                  {22,33,88},

                                  {12,63,21},

                              }

3. 使用场合:五子棋、俄罗斯方块



0 0
原创粉丝点击