C语言基础归纳 ---数组

 C 数组的声明,首先是数组的类型和数组名,然后是一个方括号,方括号中是数组元素的数目:
1. int a[100];
通过将元素的索引放到数组名称后面的[ ]中,可以访问数组的单个元素:
1. a[6] = 9;
索引是基于0 的。在前面的例子中,合法的索引在0~99。访问C 数组时系统不会在两端进行边界检查。C 允许做如下的事情:
1. int a[100];
2. a[200] = 25;
3. a[-100] = 30;
使用超出数组边界的一个索引,将会导致访问属于其他变量的无用内存,这要么导致程序崩溃,要么导致数据毁坏。利用缺乏检查的缺陷,是恶意软件的惯用招数之一。
方括号表示法只是指针算术的一种不错的语法。不带有数组方括号的数组名称,是一个指向数组开始处的指针变量。如下两行代码是完全等价的:
1. a[6] = 9;
2. *(a + 6) = 9;
当要编译的表达式使用指针算术时,编译器会考虑指针所指向的类型的大小。如果a是一个int 数组,表达式*(a+2)指的是距离数组a 开始处8 个字节(两个int)地址处的一
个4 字节内存(这是一个int 类型的大小)内容。然而,如果a 是一个char 数组,表达式*(a+2)指的是距离数组a 开始处两个字节(两个char)地址处的一个1 字节内存(这是一
个char 类型的大小)内容。
多维数组
多维数组声明如下:
1. int b[4][10];
多维数组按照行顺序地存储。这里,b[0][0]是第一个元素,b[0][1]是第二个元素,
b[1][0]是第11 个元素。
使用指针表示法为:
1. b[i][j]
可以写作:
1. *(b + i*10 + j)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值