数组和二维数组

数组的单元

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

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

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

有效的下标范围

●编译器和运行环境都不会检查数组下标是否越界,无论是对数组单元做读还是写
●一旦程序运行,越界的数组访问可能造成问题,导致程序崩溃
●segmentation fault
但是也可能运气好,没造成严重的后果
●所以这是程序员的责任来保证程序只使用有效的下标值: [0,数组的大小- 1]
长度为0的数组存在但无用 int a[0]

数组的集成初始化

int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32};

   ·直接用大括号给出数组的所有元素的初始值,不需要给出数组的大小,编译器替你数数

数组的大小

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

●sizeof(a[0])给出 数组中单个元素的大小,于是相除就得到了数组的单元个数
●这样的代码,一旦修改数组中初始的数据,不需要修改遍历的代码
 

二维数组

int a[3][5];        通常理解为a是一个3行5列的矩阵

a[0][0]a[0][1]a[0][2]a[0][3]a[0][4]
a[1][0]a[1][1]a[1][2]a[1][3]a[1][4]
a[2][0]a[2][1]a[2][2]a[2][3]a[2][4]

二维数组的遍历:

for(i=0;i<3;i++)
{
    for(j=0;j<5;j++)
        a[i][j]=i*j;
}

a[i][j]是一个int,表示第i行第j列上的单元

二维数组的初始化

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

●列数是必须给出的,行数可以由编译器来数
●每行一个{},逗号分隔.
●最后的逗号可以存在,有古老的传统.
●如果省略,表示补零
●也可以用定位( * C99 ONLY)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值