A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jinzhinan 中级黑马   /  2014-11-8 21:11  /  1232 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.数组为构造类型,就是一组数据,用来存储一组数据的
1>只能用来存放一种类型的数据,比如int类型的数组,float类型的数组
2>里面存放的数据称为”元素“
3>构造类型:是由无数个基本数据类型组成的
基本数据类型:int、float、double、char
4>定义:
声明数组类型、元素个数(需要多少存储空间)
格式:元素类型 数组名[元素个数]

2.遍历:按顺序查看每一个数组的元素
for (int i = 0;     i < 5   ;    i++)
{
     printf(“ages[%d] = %d\n “,   i,   ages[i]);
}
3.数组初始化方式,使用注意
1>正确写法:
int ages[5] = {1,2,3,4,5,};
int ages[5] = {1,  2};
int ages[5] = {[3]=1,  [4]=2};
int ages[ ] =  {1,2,3};
int ages[‘A’-60] = {1,2,3,4,5}; (’A’常量表达式)
   
2>错误写法
没有指定元素个数,没办法分配存储空间
int ages[ ];
只能在定义数组的同时进行初始化
int ages[5];
ages = {1,2,3};
如果想在定义数组的同时进行初始化,数组元素个数必须是常量、常量表达式,或者不写
int ages[count] = {1,2,3,4,5};

3>正确写法:
定义数组的过程当中并没有初始化
int count = 5;
int ages [count];
ages[0] = 1;
ages[1] = 2;
ages[2] = 3;

4.计算数组元素个数
int count = sizeof(age)/sizeof(int);

5.内存存储细节
char cs[5] = {‘a’,  ’A’,  ’D’  ,’e’  ,’f'};
数组名cs代表数组的地址
pintf(“%p\n”,cs);
计算每个元素的地址
for( i = 0;  i < 5;  i++)
  {
     pintf(“cs[%d]的地址是:%p\n” ,  i,  &cs[i]);
}(&为取出cs[i]的地址值)

【1】代码练习
//提示用户输入5个学生的成绩,算出平均分并且输出

#include <stdio.h>
int main()
{
     int scores[5];

   
     int sum = 0;


     for(i = 0 ;i < 5 ;i++ ){
          printf(”请输入第%d个学生的成绩:\n” ,  i+1 );
          scanf(“%d” , &scores[i]);
          sum += scores[i];
    }
     printf(“学生的平均分是%f\n” , sum/5.0);

     return 0;
}

6.数组和函数的注意点
1>数组作为函数参数,可以节省元素个数
2>数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组
*基本数据类型是值传递,不是地址传递
*函数的好处是把一个常用的功能封装起来

【2】代码练习
//设计一个函数,找出整型数组元素的最大值
#inculde <stdio.h>
int maxOfArray(int array[ ], int length)
{
     int max = array[0];


     for(int i = 1; i < length ; i++)
     {
      if(max<array[i])
          {
               max = array[i]
          }
     }
     return max;
}
int main()
{
     int ages[ ] = {34,  56,  67,  43,  86,  37,  100,  58};
     
     int max = maxOfArray(ages, sizeof(ages)/sizeof(int));
     printf(“%d\n”,max);
     return 0;
}


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

2 个回复

正序浏览
易拉罐 发表于 2014-11-9 12:42
学习了,你学得挺快的呀。

谢谢,还需要多多努力啊
回复 使用道具 举报
学习了,你学得挺快的呀。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马