C语言中的多维数组(2)
来源:互联网 发布:免费ddos攻击软件 编辑:程序博客网 时间:2024/06/04 19:46
上次说到C语言的多维数组中a[0][1]的地址表示方法为a[0]+1,那么我们要得到a[0][1]的值,怎么表示呢??那么就是*(a[0]+1),假设,a[0][1]中存放的数字为10,那么*(a[0]+1)=10,前面提到 a+0等于a[0]的首地址,a+1就等于a[1]的首地址,那么,*(a+0)就等于a[0][0]的首地址,就等于a[0],注意,这里的a[0]是一个地址,他代表a[0][0]的首地址,也就是列,所以我们要得到a[0][1]的地址,就要让a[0]+1,(请读者注意地址和值的区别),那么我们知道了a[0][1]的地址是a[0]+1,那么我们要知道a[0][1]的值就是*(a[0]+1),指向这个地址,就是a[0][1]的值。下面作图,能够让读者更清晰的了解:
表示形式
含义
地址
a
二维数组名,指向一维数组a[0],即第0行的首地址
2000
a[0],*(a+0),*a
0行0列元素的地址
2000
a+1,&a[1]
1行元素的首地址
2008
a[1],*(a+1)
1行0列元素 a[1][0]的地址
2008
a[1]+2,*(a+1)+2,&a[1][2]
1行2列元素 a[1][2]的地址
2012
*(a[1]+2),*(*(a+1)+2),a[1][2]
1行2列元素 a[1][2]的值
元素值13
含义
地址
a
二维数组名,指向一维数组a[0],即第0行的首地址
2000
a[0],*(a+0),*a
0行0列元素的地址
2000
a+1,&a[1]
1行元素的首地址
2008
a[1],*(a+1)
1行0列元素 a[1][0]的地址
2008
a[1]+2,*(a+1)+2,&a[1][2]
1行2列元素 a[1][2]的地址
2012
*(a[1]+2),*(*(a+1)+2),a[1][2]
1行2列元素 a[1][2]的值
元素值13
解释一下,为什么a+1和*(a+1)都是2008,可能有疑问,既然a+1是地址,而*(a+1)是内容,为什么他们的值是一样的呢??答案是,虽然a+1和*(a+1)的值是一样的,但是他们的指向是不同的,我们知道,a+1的值是行的首地址,而*(a+1)=a[1],是列的首地址。虽然他们的值是一样的,但是他们的指向是不同的,a代表的是行的首地址,所以a+1就是一行一行往下,然而我们如果要求列的首地址,就要*(a+1),虽然他们的地址一样,但是指向确是不同的,大家请看图片:
如果有疑问,欢迎共同交流,本文如有错误,欢迎批评指正!
- C语言中的多维数组(2)
- C语言中的多维数组
- C语言中的多维数组
- C语言中的多维数组
- C语言中的多维数组与指针
- C语言中的指针与多维数组
- C语言----多维数组
- 精通C语言1-C语言中的多维数组
- 【C语言复习(十七)】多维数组和多维指针
- C语言入门教程 (九)多维数组
- C语言入门(十一)多维数组
- C语言与多维数组
- [C语言]多维数组指针
- C语言malloc多维数组
- C\C++中的多维数组
- C语言 指针数组 多维数组
- 指针数组 多维数组C语言
- C语言 指针数组 多维数组
- Career Cup 1-6
- 【原创】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
- 怎样为Linux内核打补丁,及特定版本内核下载
- 解决ffmpeg编译后ffplay没有生成的问题
- 《Windows程序设计》之鼠标2
- C语言中的多维数组(2)
- 报表自定义工具栏
- Exchange 2003 升级到Exchange 2010 之设置Internet Facing FQDN 名称!
- 教你禁用XP四大自动播放功能
- a walk throught the forest(HDU1142)
- c++ string类实现
- 用 IIS 7、ARR 與 Velocity 建设高性能的大型网站
- 【C++】setw函数的用法和作用【原创技术】
- 推荐:增强视觉站