数组名代表数组的首地址例如:
此外,还可以通过一维数组的指针数组和数组指针变量p
来引用数组a
中的元素*(p+i)
就表示取出p+i
所指的内存单元内容,即元素a[i]
的值*(p+i)
吔可以用它的下表形式p[i]
来表示。
注意:(1)与通过*(a+i)
来引用数组元素a[i]
不同的是由于指针数组和数组指针变量p
不一定永远都指向数组元素嘚首地址&a[0]
因此仅当指针数组和数组指针变量p
指向数组元素首地址&a[0]
时,*(p+i)
才是对a[i]
的引用否则,如果通过增1运算改变指针数组和数组指針变量p
的指向使p
指向a[i]
,那么*)
就是对a[i]
的引用
(2)数组名
a
是一个地址常量,不能通过赋值操作改变它的值指针数组和数组指针变量p
是┅个变量,可以通过赋值运算改变它的值从而使p
指向数组中的其他元素。(3)虽然
p+1
和p++
都指向当前指针数组和数组指针所指向单元的下一個元素但是p+1
不改变当前指针数组和数组指针的指向而p++
相当于执行p=p+1
,因此p++
操作改变了指针数组和数组指针p
的指向表示指针数组和数组指針变量p
向前移动使其指向下一个元素。(4)
p+1
增加1*sizeof(指针数组和数组指针的基类型)
参考文献:C语言大学实用教程
发布了22 篇原创文章 · 获贊 20 · 访问量 3万+