码迷,mamicode.com
首页 > 编程语言 > 详细

C语言指针教程----入门到精通<二>

时间:2014-09-04 19:02:59      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   ar   2014   sp   log   on   

数组与指针:

一:

指针既然可以指向变量,那么必然可以指向一个数组。本节探讨数组与指针的关系。首先读者必须明白,数组名代表数组中首元素的地址。

bubuko.com,布布扣

那么如何表示数组中其他元素的地址以及其他元素本身呢?

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表示一行一列元素的地址。

认真体会下面两个程序。

bubuko.com,布布扣

bubuko.com,布布扣

二维数组和指针的关系这方面很多东西很抽象,并且很多东西是反人类直觉的,博主理解起来也有些吃力,各位有什么方法也欢迎反馈。



C语言指针教程----入门到精通<二>

标签:style   blog   http   color   ar   2014   sp   log   on   

原文地址:http://blog.csdn.net/u014254779/article/details/39053319

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!