| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 553 人关注过本帖
标题:关于指针和数组
只看楼主 加入收藏
surface
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2013-8-8
结帖率:82.35%
收藏
已结贴  问题点数:20 回复次数:5 
关于指针和数组
一个二维数组a
a[0]+n   代表第0行第n个元素的地址
&a[0]代表第0行的首地址    这句怎么解释啊,请教大神!
a[0]=&a[0];
搜索更多相关主题的帖子: 元素 
2014-05-29 21:48
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:7 
套用谭浩强教材中对于这一段的解释:

假设有一个排,  这个排有三个班,每个班有10名战士.规定排长只管理到班, 班长管理到战士.为了便于和二维数组对应,  这里使用一些二维数组的概念.  30个战士站成3行10列. 这个时候我们如果想定位一个战士的话,必然需要两个参数,一个行,一个列. 对于排长来说,  从第一个战士开始跨出一步,到了第二个战士, 这个时候排长虽然跨的是一步,但是跨过了10个战士.来到了第二行的第一个战士的面前.   而对于班长来说, 班长跨过一步到第二个战士跟前的时候,他只跨过了一个战士.  他也是从第一行第一列那个战士开始走的.  他们走的方向不同,指向不同, 含义也就不同了.

大体意思是这样的,  最好是直接看一下原教材.  

指针这一部分如果想学的轻松最好是有汇编基础. 个人虽然也有涉猎指针,但总感觉不大明白,还是听前辈们的话,补一下汇编吧,目前正在看王爽的汇编教材.

代码测试环境:  WinXP+C-Free5.0.
2014-05-29 22:44
surface
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2013-8-8
收藏
得分:0 
回复 2 楼 vvvcuu
a==&a[0]是不是吧a[0]当做元素的?
2014-05-29 23:09
surface
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2013-8-8
收藏
得分:0 
回复 2 楼 vvvcuu
a[0],a[1]不能作为数组元素使用,只能作为数组名
这是书上的原话
这样书上不就矛盾了吗
2014-05-29 23:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:7 
int x[2][3] = a, b, c
              d, e, f;

那么 x[0] 就是 { a, b, c },它的类型是 int[3],它的值是 { a, b, c } 的首地址
&x[0] 当然就是 { a, b, c }的地址,即类型为 int(*)[3] (可见x[0]和&x[0]的值一致,但类型不一样)
x[0] + 1 的类型是 int*,它的值就是 x[0][1]的地址 (这里涉及到的是C中的 数组隐式降阶为指针,也就是x[0]的类型int[3]降阶为int*)

别只考虑值不考虑类型
你的脚和你在同一位置(相当于C中的地址一样),我能说你的脚就是你吗?你就是一只脚吗?
2014-05-30 08:28
cnlfcandroid
Rank: 2
等 级:论坛游民
帖 子:14
专家分:43
注 册:2014-5-14
收藏
得分:7 
你这应该是错误的吧?
一个二维数组a
&a[0][n-1]   代表第0行第n个元素的地址
&a[0]代表第0行的首地址    这句怎么解释啊,请教大神!
a=&a[0]
应该是这样的
2014-05-30 11:28
快速回复:关于指针和数组
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025897 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved