CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

多维数组指针

楼主streetballerym(streetballerym)2005-04-20 11:06:36 在 C/C++ / C语言 提问

关于c语言中多维数组指针我有点不明白,例如数组a[2][3],书中说a是指向0号分数组的指针,a[0]是0号分数组的数组名,指向a[0][0]的指针。他们在数值上应该是相等的。但书上又说a与a[0]的地址的值是相同的。那不就成了a[0]与&a[0]的值是相同的?a[0]到底是什么?里面存放的值又是什么? 问题点数:20、回复次数:13Top

1 楼winstonch()回复于 2005-04-20 11:13:00 得分 0

a[0]是地址,对数组来说&有点特殊Top

2 楼discory(discory)回复于 2005-04-20 11:15:39 得分 3

数组a其实就是a[0]的一种简写方式,因为数组是从a[0]开始的,数组a就表示a[0]  
  a[0]表示数组的第一个成员,a[0]是第一个成员数值,&a[0]是取这个数值的地址,  
  我也是新手,我是这样理解的,不知对否Top

3 楼streetballerym(streetballerym)回复于 2005-04-20 11:41:04 得分 0

to   discory(discory)  
   
  a与a[0]在含义上不同的,他们的步进值不同。a+1与a[0]+1的地址值和步进值都是不同的Top

4 楼streetballerym(streetballerym)回复于 2005-04-20 11:44:45 得分 0

还有谁能解释一下吗?Top

5 楼zouwen198317(静悄悄)回复于 2005-04-20 11:49:01 得分 0

upTop

6 楼dongpy(51-->ARM)回复于 2005-04-20 11:51:29 得分 0

a[0]到底是什么?里面存放的值又是什么?  
  ===========================================  
  a[0]是一个地址常量,与a相等.      
   
  a[0]与&a[0]的区别就是步进值不同.Top

7 楼tree_ada(树)回复于 2005-04-20 13:30:54 得分 0

a[0]与a都是数组中第一个元素的地址,即&a[0][0],里面存放的是第一个数组元素a[0][0].  
  注意a[0]表示的是地址,想必楼主的问题是出在这里。Top

8 楼bsnhk((void *)0)回复于 2005-04-20 16:41:13 得分 8

a是一个一维数组(即a[2])的名字,所以a就是指向一维数组a中下标为0的那个元素(即a[0])的常量指针,所以a等效于&a[0];  
  a[0]是一个一维数组(即a[0][3])的名字,所以a[0]就是指向一维数组a[0]中下标为0的那个元素(即a[0][0])的常量指针,所以a[0]等效于&a[0][0];Top

9 楼bsnhk((void *)0)回复于 2005-04-20 16:52:49 得分 3

指针的关键是类型,而不是其值如何。  
  指针的类型涉及到类型表达式、指针步长  
  一个标识符(包括指针)的类型表达式是c语言中最难入门的东西(比c的声明规则的入门还难),只要你在这方面入门了,你才算是真正的进入c的门槛,否则,只是看看老谭的书,而没有主动去研究(在凭着某些大师的著作中的只言片语去研究出某一方面的知识),那想进步是很难的。只看老谭的c就好比学医只知道人有手又脚却不知人还有五脏六腑。  
  有些人说别在c上面浪费功夫,学了基本的c后就应该要实战,可是,如果仅仅是看老谭的c,我认为远远不够。Top

10 楼niuman(青橄榄)回复于 2005-04-20 17:31:28 得分 6

关于c语言中多维数组指针我有点不明白,例如数组a[2][3],书中说a是指向0号分数组的指针,a[0]是0号分数组的数组名,指向a[0][0]的指针。他们在数值上应该是相等的。但书上又说a与a[0]的地址的值是相同的。那不就成了a[0]与&a[0]的值是相同的?a[0]到底是什么?里面存放的值又是什么?  
  ---------------------------------------------------  
  首先提到一个概念:多维数组可以理解为数组的数组,  
  即:二维数组是由多个一维数组元素组成的一维数组。  
  在这里a有两种解释,与上下文有关。  
  1):代表二维数组,如:sizeof(a)==6(即:数组元素个数)  
  2):一维数组指针,即:指向第一个元素的指针  
        (这里的第一个元素是一个由三个元素组成的一维数组),  
  同样的,a[0]也有两种解释  
  1):一维数组,即a数组的第一个元素,sizeof(a[0])==3  
  2):   指向数组a[0]的第一个元素a[0][0]  
  a==&a[0],   a[0]==&a[0][0]  
  总结:a可以理解为一维数组指针,a[0]可以理解为简单的指针  
  指针a,a[0]存放的地址值都是&a[0][0],但是类型不同  
   
  Top

11 楼xjp6688(大平/要做必须最好)回复于 2005-04-21 08:13:30 得分 0

a[0]可以理解多唯数组的第一行!  
  还有多唯数组可以理解成数组的数组,实际数组在内存中是线性的!Top

12 楼jeanssun(西部牛仔||孙耀文)回复于 2005-04-21 08:42:34 得分 0

二楼的同志说的挺好的,赞同  
  Top

13 楼streetballerym(streetballerym)回复于 2005-04-21 10:01:56 得分 0

哦,知道鸟!谢谢大家帮忙。Top

相关问题

  • 多维数组指针如何写?
  • 一个多维数组的指针问题
  • 一个指针和多维数组的问题。
  • 请问这个多维数组---指针问题.
  • 用指针指多维数组怎么用?
  • 求助:关于多维数组,指针问题
  • 问一道关于多维数组指针的题
  • 问一道关于多维数组指针的题。
  • 多维数组??
  • 用指针表示二维数组?

关键词

  • 指针
  • 数值
  • 数组
  • 维数组
  • 元素
  • 指向
  • 常量
  • 地址
  • 值
  • 相等

得分解答快速导航

  • 帖主:streetballerym
  • discory
  • bsnhk
  • bsnhk
  • niuman

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo