[编程笔记]第五章 数组

  1. 为什么需要数组?
  为了解决大量同类型数据的存储和使用问题
  为了模拟现实世界
  1. 数组的分类
      一维数组:
          怎样定义一维数组
          格式: 数据类型 数组名[元素个数] ;
              为n个变量连续分配存储空间
              所有的变量数据类型必须相同
             所有变量所占的字节大小必须相等
         //例子
             int a[5] ;
             一维数组名不代表数组中的所有元素
             一维数组名代表数组第一个元素的地址  
         有关一维数组的操作
             初始化
                 1. 完全初始化
                     int a[5] = {1,2,3,4,5} ;
                 2. 不完全初始化 //未被初始化的元素自动为零
                     int a[5] = {1,2,3} ;
                 3.不初始化 //所有元素都是垃圾值
                     int a[5] ;
                 4.清零 
                     int a[5] = {0} ;
               赋值
             排序
             求最大/最小值
             倒置
             查找
             插入
             删除
 
     二维数组
         格式:数据类型 数组名[行数][列数] ;
         int a[3][4] ;
         //总共是12个元素可以当做是3行4列看待,依次为:
         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]
         int a[m][n] ;//该二维数组右下角位置坐标元素只能是a[m-1][n-1]
     //初始化:
         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} ,
         } ;
         //操作:
         //输出二维数组的内容
             int a[3][4] 
             {
                 {1,2,3,4} ,
                 {5,6,7,8} ,
                 {9,10,11,12} ,
             } ;
         int i,j ;
         //输出数组内容
         for (i=0; i<3; ++i)
         {
             for (j=0; j<4; ++j)
                 printf("%d",a[i][j]) ;
             printf("\n") ;
         }
        对二维数组进行排序
        求每一行的最大值
        判断矩阵是否对称
        矩阵的相乘

    
    多维数组
        是否存在多维数组
            答:不存在,因为内存是线性一维的
            n维数组可以当做每个元素是n-1维数组的一维数组。
        例如:
            int a[3][4] ;
            //该数组是含有3个元素的一维数组
            只不过每个元素都可以再分成4个小元素  
           int a[3][4][5] ;
           //该数组是含有3个元素的一维数组
           只不过每个元素都是4行5列的二位数组       
posted @ 2019-01-03 18:57  Xu_Lin  阅读(197)  评论(0编辑  收藏  举报