数组

  • 定义

  1)<类型>变量名称[元素数量];

int grades[100];//名称为grades的数组有100个int型的单元

double weight[20];//名称为weight的数组有20个double型的单元

  2)元素的数量必须是整数

  3)C99之前:元素数量必须是编译时刻确定的字面量(常数)

  • 特点

  1)是一种容器

  2)其中所有的元素具有相同的数据类型

  3)一旦创建,不能改变大小

  4)*(数组中的元素在内存中是连续依次排列的)

int a[10]
//一个int的数组
//10个单元:a[0],a[1],a[2],...,a[9]
//每个单元就是一个int类型的变量
//可以出现在赋值的左边或右边:  a[2]=a[1]+6;   “=”左边读、右边写
//*在赋值左边叫左值,右边叫右值
  • 单元

  1)数组的每一个单元就是数组类型的一个变量

  2)使用数组时放在[  ]中的数字叫做下标或索引,下标从0开始计数

grades[0]
grades[99]
average[5]

  3)有效的下标范围:[0,数组的大小 - 1] 

  segmentation fault:下标越界

  存在长度为0的数组 int a[0] ,但是无用

 

 

数组运算

  • 集成初始化
int a[] ={2,4,6,7,1,3,5,9,11,13,23,14,32};

   得出数组大小

  • 大小

 1)sizeof给出整个数组所占据的内容的大小,单位是字节

sizeof(a)/sizeof(a[0])

 2)sizeof(a[0])给出数组中单个元素的大小,相除就得到了数组的单元个数

 3)若修改数组中的初始数据,不需要修改遍历的代码

  • 赋值

 1)数组变量本身不能被赋值

 2)要把一个数组的所有元素交给另一个数组,必须采用遍历

for( i=0; i<length; i++){
   b[i] = a[i];
}
  • 遍历数组

 1)通常使用for循环,循环变量i从0到<数组的长度,循环体内最大的i正好是数组最大的有效下标

 2)常见错误:

  a.循环结束条件是<=数组长度

  b.离开循环后,继续用i的值来做数组元素的下标

 3)数组作为函数的参数时,必须再用另一个参数来传入数组的大小:

  a.不能在[ ]中给出数组的大小

  b.不能再利用sizeof来计算数组的元素个数

  • 二维数组
int a[3][5];//a是一个3行5列的矩阵

 1)遍历

for ( i=0; i<3; i++ ){         //行号遍历
    for ( j=0; j<5; j++){      //列号遍历
        a[i][j] = i*j;
    }
}

  a.a[i][j]是一个int

  b.表示第i行第j列上的单元 

 2)初始化

int a[][5] = {
    {0,1,2,3,4},
    {2,3,4,5,6};
};

  a.列数必须是给出的,行数可以由编译器来数

  b.每行一个{ },逗号分隔

  c.最后逗号可以存在

  d.如果省略,可以补零

  e.可以用定位(*C99 ONLY)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值