C语言中数组与指针的使用技巧
学术研究 Academic Research
C 语言中
数组与指针的使用技巧
张颖/莆田学院电子信息工程学系 (福建 莆田·351100)
摘 要: 1.1 一维数组元素的地址
指针是C语言的精华亦是难点,数组与指针又是指针
应用上的一个难点,尤其是二维数组与指针。文中介绍了数 表示一维数组元素的地址的方法有很多,例如可以通
组的存储方式与地址,分析了指针与数组的关系,指向数组 过数组元素前加地址符&来表示,也可以通过一维数组名加
的指针的应用,二维数组中行指针与列指针的概念与区别, 上相对位移量来表示。例如int a[5];此一维数组名a代表数
并总结了使用行指针、列指针的技巧,探讨了指针的使用方 组首地址 (即数组中第一个元素a[0]的地址,假设为1000),
法。 而a+1代表数组第一个元素a[1]的地址,这里的a+1不是表示
关键词: 加上一个字节,而是加上一个步长(即存储一个数组元素
C语言;地址;指针;数组
中图分类号: 文献标识码: 所用单元的大小),由于a数组是整型数组,每个元素占2字
TP312 A
文章编号: 节,所以a+1相当于是a+1*2 (即1000+1*2=1002),以此类推,
1673-1131(2009)04-033-03
数组a中各元素的地址表示如表1所示。
指针是一种特殊的数据类型,存放的是某个实体的地 表1 一维数组元素的地址表示
址值。掌握了指针,就可以直接处理内存单元的地址,编写 数组元素 a[0] a[1] a[2] a[3] a[4]
出简洁、紧凑、高效的程序。然而由于指针是对内存单元的 地址 1000 1002 1004 1006 1008
间接访问,因此在使用时要谨慎,以免给系统带来隐患。特 地址的表示方法① &a[0] &a[1] &a[2] &a[3] &a[4]
别是指向多维数组的指针使用时要更加小心,以下笔者就 地址的表示方法② a+0 a+1 a+2 a+3 a+4
来探讨一下在使用数组指针时的技巧。 然而a+1可不可以写成a++呢,答案是否定的,a+1只是
表示第一个数组元素的地址,而a本身没有变化,仍然代表
一、一维数组与指针 a数组的首地址。但a++相当于a=a+1,然而对于数组名a,是
一个变量的指针就是该变量的地址。而一维数组的指 数组首元素的地址,它是一个指针常量,其值在程序运行期
针就是一维数组在内存中的首地址。 间是不变的。而常量是不能自加自减的,例如5++即5=5+1是
The Skill Of Using Array and Pointer in C Programming
ZHANG Ying
(Department of Electr