Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1676178
  • 博文数量: 311
  • 博客积分: 7778
  • 博客等级: 少将
  • 技术积分: 4186
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-09 19:59
个人简介

蓝点工坊(http://www.bluedrum.cn) 创始人,App和嵌入式产品开发。同时也做相应培训和外包工作。 详细介绍 http://pan.baidu.com/s/1y2g88

文章存档

2012年(3)

2011年(115)

2010年(170)

2009年(23)

分类: C/C++

2010-05-22 22:33:47

Andrew Huang
 
1.数组定义
 
  数组是C语言使用频率极高的存储结构,它有如下特点。
  1.同一种数据类型的有序的集合。即一个数组可以保存同一类型多个实例
  2.用一个数组名加上下标,可以访问数组内所有数据,并且下标可以动态改变,这大大方便程序编写。
  3.数组本质是内存一段连续内存。本质上任意一段内存也能转换成数组操作。C语言在这一点上相当自由。
 
一维数组的定义格式
            数据类型 数组名[数组尺寸] ;
 
例如 int ary[10];定义为10个元素大的数组。以上个例,我们来看如何操作数组。
 
  是数组本身内存一段buffer。因此可以用 printf("%x\n",ary); 打印出数据首地址。
  数组大小是所有元素尺寸的总和,因此上述数组在大小是 sizeof(int)*10.但C语言可以直接用 sizeof(ary)求出数组大小,
 
  数组的访问是通过下标来进的,并以0为起始地址。这样int ary[10]的第一个元素为 ary[0],最后一个元素为 ary[9].这样ary[10]是数组越界了。这是初学常犯的错误。
 
但C语言的下标处理,非常自由。对于ary而言, ary[-1],ary[10],ary[15]的读写将不会造成任何编译问题。这种主要是为操作内存方便的设计,但是可能会带很大问题,会不会造成程序出错,这将由开发者自行判断。
 
 
 
  
 
  
阅读(1267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~