| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 981 人关注过本帖
标题:【求助】大神请留步关于数组问题
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
指針的一個基本特性是它可以自加減,說text[n]是啥指針的,看看它能不能自加減就知道了。把數組和指針混淆的説法,都不知道禍害了多少人。

授人以渔,不授人以鱼。
2015-02-14 02:09
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:8 
回复 11楼 TonyDeng
TonyDeng版主英明!!!
char *t定义t为指针,t+n也为指针,而*(t+n)却是进行了指针运算了,可等效于t[n],t[n]为数组。数组作为函数参数传递时是传送的该数组首地址,该地址可作为指针进行操作,(*t)[len]等效于t[][len],gets(t[n])等效于gets(&t[n][0])。
这样理解对吗?还请TonyDeng版主明示。

能编个毛线衣吗?
2015-02-14 05:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我說的是指針自加減

授人以渔,不授人以鱼。
2015-02-14 09:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
普通的指針,可以改變自身的值(指向不同的位置),但數組名,是常量性質的,無法改變。對數組名,我們可以用sizeof()或_countof()之類取得它的尺寸,但對指向數組入口的指針卻不行。對“二維”數組text[M][N]的text[i],測試一下不依靠N能不能算出text[i]的尺寸就知道了它是數組還是普通指針了。

爲什麽數組在傳參成爲指針之後,我們總要附帶傳遞數組尺寸參數呢?就是這個原因!事實上,這個數組在不傳參的時候,我們是可以直接求出它的空間大小的,但成爲普通指針之後,就求不出了。這是數組實際上不是指針的顯著表現。數組名在某些時候可以當指針用,但千萬不要以爲那真是指針,因爲指針可以通過自加減改變自身的值,但數組名絕對不可以,如果沒有把兩者混同的意識,根本不會犯那些常見的錯誤。

授人以渔,不授人以鱼。
2015-02-14 10:11
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
收藏
得分:0 
回复 7楼 猫林heart
做形参的话是一样的吧=3=

请给你男神一个爱你的理由。
2015-02-14 19:02
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
收藏
得分:0 
回复 8楼 诸葛欧阳
那t[n]当n取0、1、2的时候就是第一二三行首地址的意思

请给你男神一个爱你的理由。
2015-02-14 19:03
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
收藏
得分:0 
回复 12楼 wmf2014
我也想问这个~十分感谢TAT

gets(t[n])=gets(&t[n][0])吗。
也就是代码中这个t[n]是代表的每行首地址的值吗?

请给你男神一个爱你的理由。
2015-02-14 19:09
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
收藏
得分:0 
回复 14楼 TonyDeng
在主函数带进来以后这应该是个数组吧,关键是我不懂的是:gets(t[n])=gets(&t[n][0])吗。
也就是代码中这个t[n]是代表的每行首地址的值吗?

请给你男神一个爱你的理由。
2015-02-14 19:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
t[n]就是一個char s[]

授人以渔,不授人以鱼。
2015-02-14 19:15
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
收藏
得分:0 
回复 14楼 TonyDeng
大神感谢你说了这么多~
主要是我不明白的是这个gets(t[n])括号里面那个是不是每行首地址的值。

还有*t[n],在二维数组里,t[0]是第一行首地址,*t[0]就是第一行第一个元素的值吗?

请给你男神一个爱你的理由。
2015-02-14 19:15
快速回复:【求助】大神请留步关于数组问题
数据加载中...
 
   



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

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