码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-03-22 00:19:18      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

一、一维数组

      存放一组同种类型的数据。

      1、数组的定义  

        元素类型 数组名[元素个数];

       

1      //都是正确写法
2     int ages[5] = {10 , 11, 12, 67, 56};
3     int ages[5] = {10, 11};
4     int ages[5] = {[3] = 10, [4] = 11};
5     int ages[] = {10, 11, 14};
6     
7     // 错误写法
8      int ages[];

 

      2、 数组的初始化        

     

1 // 错误写法
2     //只能在定义数组的同时进行初始化
3     int ages[5];
4     ages = {10, 11, 12, 14};
//正确写法
//只能在定义数组的同时进行初始化
    int ages[5] = {10, 11, 12, 14};
1 // 正确写法
2     /*
3     int count = 5;
4     int ages[count];
5     ages[0] = 10;
6     ages[1] = 11;
7     ages[2] = 18;
8     */

    3、 数组的基本使用

 1 / 数组的基本使用
 2 void arrayUse()
 3 {
 4     // 数组的定义格式: 类型 数组名[元素个数];
 5     int ages[5] = {19, 29, 28, 27, 26};
 6     // 19 19 28 27 26]
 7     ages[1] = 29;
 8     
 9     /*
10      ages[0] = 19;
11      ages[1] = 19;
12      ages[2] = 28;
13      ages[3] = 27;
14      ages[4] = 26;
15      */
16     
17     /*
18      遍历:按顺序查看数组的每一个元素
19      */
20     for (int i = 0; i<5; i++)
21     {
22         printf("ages[%d]=%d\n", i, ages[i]);
23     }
24 }

    4、 数组在内存中的分析

       ①  数组存储空间的大小 

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

       ③  数组名的作用,查看元素地址

   

 1 #include <stdio.h>
 2 
 3 /*
 4  提示用户输入5个学生的成绩,算出平均分并且输出
 5  */
 6 
 7 int main()
 8 {
 9     
10     
11     // 1.定义一个数组来存储成绩
12     int scores[5];
13     
14     // 2.提示输入成绩
15     // 用来存储总分
16     int sum = 0;
17     for (int i = 0; i<5; i++) {
18         // 2.1 提示输入某个学生的成绩
19         printf("请输入第%d个学生的成绩:\n", i + 1);
20         // 2.2 存储当前学生的成绩
21         scanf("%d", &scores[i]);
22         // 2.3 累加成绩
23         sum += scores[i];
24     }
25     
26     // 3.计算平均分,并且输出
27     printf("平均分是%f\n", sum/5.0);
28     return 0;
29 }

5、 数组与函数的关系和应用

    ① 数组作为函数参数,可以省略元素个数

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

   

 1 #include <stdio.h>
 2 void change(int array[])
 3 {
 4     //printf("array==%p\n", array);
 5     
 6     array[0] = 100;
 7 }
 8 
 9 void change2(int n)
10 {
11     n = 100;
12 }
13 
14 int main()
15 {
16     int ages[6] = {10, 11, 10, 11, 10, 11};
17     
18     //printf("ages==%p\n", ages);
19     
20     change(ages);
21     
22     //change2(ages[0]);
23     
24     printf("%d\n", ages[0]);
25     return 0;
26 }

二、二维数组

     二维数组是一个特殊的一维数组:它的元素是一维数组

    1、数组的定义和初始化

        

1   int a[3][4] = {1,2,3,4,5,6};
2   int a[3][4] = {{},{},{}};
3 //数组元素简单访问
4   int a[][5] = {3,21,31,2,32,1};
5 
6 //注意错误:
7   int a[3][4];
8   a[3] = {};

   2、二维数组的简单运用

    

 1 /*
 2      1 浅蓝色
 3      2 深蓝色
 4      3 黄色
 5      4 红色
 6      -1 没有
 7      */
 8     
 9     int cubes[5][5] = {
10         {1, -1, -1, -1, -1},
11         {1, 1, -1, 2, -1},
12         {4, 1, 2, 2, 2},
13         {4, 3, 3, 3, 3},
14         {4, 3, 3, 3, 3}
15     };
16     

 

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

标签:

原文地址:http://www.cnblogs.com/gaizuojia/p/4356464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!