标签:style blog http color ar 2014 sp log on
数组与指针:
一:
指针既然可以指向变量,那么必然可以指向一个数组。本节探讨数组与指针的关系。首先读者必须明白,数组名代表数组中首元素的地址。
那么如何表示数组中其他元素的地址以及其他元素本身呢?
p+i或a+i就是a[i]的地址;相应的,
*(p+i)或*(a+i)就表示的a[i]元素。
已经提到了数组名代表数组首元素地址了,那么所有用数组名做参数的函数都可以改写
成用指针做参数的函数。
二:多维数组的情况。
这里,读者首先有个意识,多维数组每一维也都是一维数组。假设有个二维数组a[3][4],那么a[0],a[1],a[2]都是一个一维数组(他们是数组名,也是地址)。于是你能较为抽象的理解一下几个表示方法。
a 二维数组名,指向一维数组a[0],0行首地址
a+1, &a[1] 一行首地址
*(a+1), a[1] 一行零列元素地址
*(a+1)+2,a[1]+2 一行二列元素地址
*(*(a+1)+2), *(a[1]+2) 一行二列元素的值
上面这几个表示形式一定要注意,尤其是:a+1表示一行首地址,*(a+1)表示
一行零列元素地址,虽然他们的值时相同的,但是他们是不同的,a+1+1表示二行首地址,而*(a+1)+1表示一行一列元素的地址。
认真体会下面两个程序。
二维数组和指针的关系这方面很多东西很抽象,并且很多东西是反人类直觉的,博主理解起来也有些吃力,各位有什么方法也欢迎反馈。
标签:style blog http color ar 2014 sp log on
原文地址:http://blog.csdn.net/u014254779/article/details/39053319