1. 1 .为什么需要数组  
  2.     为了解决大量同类型的数据的存储和使用问题  
  3.     为了模拟世界  
  4.  
  5. 数组的分类  
  6.     一维数组  
  7.     怎么样去定义数组  
  8.         为n 个变量连续分配存储空间  
  9.         所有的变量数据类型必须相同  
  10.         所有变量所占的字节大小必须相同。  
  11.  
  12. 例子:  
  13.     Int a [5];  
  14.     一维数组不代表数组中的所有的元素!  
  15.     一维数组名所代表数组第一个元素的地址! a[0]  
  16. 定义数组的时候 int a[5] 所代表的是5个数。 但是数组的索引是从零开始! 主要循环的时候!不然它出错啦!  
  17.  
  18.  
  19. 有关一维数组的操作  
  20.     初始化  
  21.     完全初始化  
  22.     Int a[3] = {1,2,3};  
  23.  
  24.     不完全的初始化  
  25.     Int a[5] = {1,2,3};  注意: 不完全的初始化的情况下,没有被初始化的系统会默认为0;  
  26.       
  27.     完全没有初始化   
  28.     Int a[5]; //不完全初始化的情况下,会出现5个垃圾数字  
  29.  
  30.     清零的技巧:  
  31.     Int a[5] = {0};     //那么系统后面4个都为零啦!  
  32.  
  33.  
  34. 错误的写法:  
  35. 1.  
  36.     int a[6] ;  error 错误!   
  37.     a[6] = {1,2,3,4,5,6,};  
  38.  
  39. 记忆法: 只有在定义的数组的同时才可以整体赋值!  
  40. 原因: 因为在定义 a[6] 之前 是定义了6个  而a[6] 是代表从 元素的下标开始计算起来的。所以会报错!  
  41.  
  42. 2.    
  43. int a[5] = {1,2,3,4,5};  
  44.     int b[5] = a[5];     
  45.  
  46. 原因:数组是不能够直接赋值给另外一个数组!  
  47. 正确做法为:  
  48.       
  49.     int i = 1;  
  50.     int a[5] = {1,2,3,4,5};  
  51.     int b[5];  
  52.     for (i = 0;i<5;i++)  
  53.     {  
  54.         b[i] = a[i];                  
  55.     }  
  56.       
  57.     for(i = 0;i<5;i++)  
  58.     {  
  59.         printf("%d\n",b[i]);  
  60.     }  
  61.       
  62.  
  63. 算法要掌握的内容:  
  64. 赋值  
  65. 排序  
  66. 最大最小值  
  67. 倒置  
  68. 查找  
  69. 插入  
  70. 删除。  
  71.  
  72. 把一个元素倒置的算法:  
  73. #include <stdio.h>  
  74.  
  75. int main(void)  
  76. {  
  77.     int a[5] = {1,2,3,4,5};  
  78.     int j = 4;  
  79.     int i = 0;  
  80.     int t = 0;  
  81.     while (i <=j)  
  82.     {  
  83.         t = a[i];  
  84.         a[i] = a[j];  
  85.         a[j] = t;  
  86.         i++;  
  87.         j--;  
  88.     }  
  89.       
  90.     for (i = 0; i<=4;i++)  
  91.     {  
  92.         printf("%d",a[i]);  
  93.     }  
  94. }  
  95.  
  96. 二维数组  
  97.  
  98.     Int a[3][4];  //这个是指个数! 而数组的索引是从零开始!  
  99.     总共是 12个元素,可以看做是三行四列     
  100.  
  101.         a[0][0] a[0][1] a[0][2] a[0][3]  
  102.         a[1][0] a[1][1] a[1][2] a[1][3]  
  103.         a[2][0] a[2][1] a[2][2] a[2][3]  
  104.     int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};  
  105.     int a[i][m] =a[i-1][m-1] //获得索引元素所对应的值!   
  106.  
  107. 初始化问题:  
  108.     int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};  
  109.     int a[3][4] =  
  110. {  
  111.         {1,2,3,4},  
  112.         {1,2,3,4},  
  113.         {1,2,3,4}  
  114. };  
  115.  
  116. 操作  
  117.  
  118.  
  119. #include <stdio.h>  
  120. int main(void)  
  121. {  
  122.     //int a[2][3]={1,2,3,4,5,6};  
  123.       
  124.     int a[2][3] = {  
  125.         {1,2,3},  
  126.         {4,5,6}  
  127.           
  128.             };  
  129.       
  130.     int i = 0;  
  131.     int j = 0;  
  132.     for(i = 0;i<2;i++)  //a[0][0] a[0][1] a[0][2]  
  133.     {  
  134.         for(j = 0;j<3;j++)  
  135.         {  
  136.             printf("%d ",a[i][j]);  
  137.         }  
  138.         printf("\n");  
  139.     }  
  140.       
  141. }  
  142.  
  143.  
  144. /*  
  145. 二维数组外循环控制行!内循环控制列。  
  146. 因为索引是从零开始的, 而a上面的是个数。   
  147.    
  148. */ 
  149.  
  150. 多维数组  
  151.     是否存在多维数组  
  152.     不存在  
  153.     因为内存是线性一维的。  
  154. N维数组可以当作是每个元素的n – 1维数组里面的一维数组  
  155. Int a[3][4];  
  156. 那么该数组只含有三个一维数组,而三个一维数组里面再分成4个小元素。  
  157. Int a[3][4][5];  
  158. 那么该数组只含有三个一维数组,而该三个一维数组中有4行5列。    
  159.         a[0][0] a[0][1] a[0][2] a[0][3]  
  160.         a[1][0] a[1][1] a[1][2] a[1][3]  
  161.         a[2][0] a[2][1] a[2][2] a[2][3]  
  162.  
  163. 用循环输出就是 : 外循环控制行 ,内循环控制列。  
  164.  
  165.  
  166.  
  167.  

今天学习不用心,经常挨夜!任务完成后看书或者整理下论坛都可以.但请不要浪费时间。