长 沙 大 学 学 报 VOl_26 No.5
第26卷 第5期
JOURNALOFCHANGSHAUNIVERSITY Sep.2012
2012年 9月
浅析 C语言中指针与其他数据的关系
赵俊峰
(太原大学外语师范学院,山西 太原030012)
摘 要 :指针是c语言的精华,详细论述了C语言中指针与变量、指针与数组、指针与字符 串、指针与函数以及指针与结
构体之间的关系.指针与其他数据类型配合,可以让C程序设计更加灵活和方便 ·
关键词 :指针 ;地址 ;数组 ;关系
中图分类号:TP312 文献标识码 :A 文章编号:1008—4681(2012)05—0067—02
指针是 c语言中的一个非常重要的概念,也是C语言的 (1)定义:inta[10], p;&&a为一维数组 ,P为指针
精华之所在.只有掌握了指针 ,才能说掌握了c语言.灵活而 变量.
正确地运用好指针,可以非常方便地表示复杂的数据类型, (2)关联:P= ;或P=&a[0];&&在 P中存放了数组a
提高C语言的编程效率.指针即是地址,一个数据对象的指 的首地址,P则指向数组a的第 1个元素.
针即是这种数据对象的地址.要真正掌握指针,必须理解指 (3)引用:P、P++、P++等等 &&通过P++可以
针与变量 、指针与数组 、指针与字符串、指针与函数、指针与 让P指向下一个元素.
结构体之间的关系. 指向一维数组的指针变量不仅可以指向第一个元素,还
可以在指向数组中的其他元素.如有定义:inta[10],P=a
1 指针与变量的关系
+5;则P指针指向数组中下标为5的a[5]元素.
1.1 变量指针
3 指针与二维数组的关系
变量的指针即是变量的地址,若有定义:inta;则变量 a
的地址可以用 &a获得 (&为取地址运算符). 3.1 二维数组的指针
1.2 指针变量 二维数组可以看作是特殊的一维数组.若有定义:inta
指针变量即在其中存放地址的变量.指针变量与普通变 [3][4];可以把第 1行的元素a[0][0]、a[0][1]、a[0]
量不同,普通变量 中存放的是值 (可以是整数 、实数或字符 [2]、a[0][3]看作是数组名为a[0]的一维数组 ,依次类推,
等),而指针变量中存放的是另一个数据对象的地址,即这个 第2行可以看作是数组名为a[1]的一维数组,第3行可以看
指针变量就直接指向了另一个数据对象.要使用指针变量必 作是数组名为a[2]的一维数组.而a[0]、a[1]、a[2]又可以
须经过定义 、关联和引用三个阶段. 看作是数组名为a的一维数组,因此二维数组即是一维数组
(1)定义 :inta, P;&&a为普通变量,P为指针变量. 的一维数组.如下图所示 ,不难看出二维数组名其实是二级
(2)关联 :P=&a;&&由于在P中存放了a的地址 ,指针 指针,间接地指向二维数组a的元素 .
变量P则指向a.
’a[0】 -_- a[o]0【】 a[O】[11】 ao【】2【】 a[0】3【】
(3)引用 :prinff(“%d”, P);&&通过 P间接引用P
所指向的变量 a. all】 _