当前位置: 代码迷 >> C语言 >> 请教 *(a+1)就是a[1]
  详细解决方案

请教 *(a+1)就是a[1]

热度:182   发布时间:2005-05-26 10:27:00.0
请教 *(a+1)就是a[1]
各位能帮我解释一下
*(a+1)就是a[1]
原因吗???
搜索更多相关的解决方案: 原因  

----------------解决方案--------------------------------------------------------
*(a+1)=a[1]=&a[1]=a+1
这种问题不用深究.能明白就明白,不明白就算了,好读书不求甚解,就是这个意思.
这是一种重要的学习方法.
----------------解决方案--------------------------------------------------------
二楼的,别胡说八道!



TO : 楼主

[]是个运算符,你可以看成是取保存在"某个地址中的值"。如: a[1]   就是取"地址值: a+1" 中的值。我们知道a这个变量中保存了数组a[]的首址,那么a+1(注意这是地址的运算或者说是指针运算)就是数组a[]的第二个成员的地址。a[1]就是表示数组的第二个成员的值.

*也是运算符,意义同上。
----------------解决方案--------------------------------------------------------
以下是引用knocker在2005-5-26 12:00:37的发言: 二楼的,别胡说八道! TO : 楼主 []是个运算符,你可以看成是取保存在"某个地址中的值"。如: a[1] 就是取"地址值: a+1" 中的值。我们知道a这个变量中保存了数组a[]的首址,那么a+1(注意这是地址的运算或者说是指针运算)就是数组a[]的第二个成员的地址,*(a+1)是指向a+1这个地址里的值,a[1]就是表示数组的第二个成员的值.所以*(a+1)==a[1] *也是运算符,意义同上。

----------------解决方案--------------------------------------------------------
以下是引用knocker在2005-5-26 12:00:37的发言: 二楼的,别胡说八道! TO : 楼主 []是个运算符,你可以看成是取保存在"某个地址中的值"。如: a[1] 就是取"地址值: a+1" 中的值。我们知道a这个变量中保存了数组a[]的首址,那么a+1(注意这是地址的运算或者说是指针运算)就是数组a[]的第二个成员的地址。a[1]就是表示数组的第二个成员的值. *也是运算符,意义同上。
你的解释才是乱说八道,对这种问题,最正确的理解就是:C就是这么规定的,没什么道理好说
----------------解决方案--------------------------------------------------------
关于这个问题谭浩强的书中有长达近2000字的解释,不过我认为这种解释的性质仍然是:为什么BOOK为什么要写成B-O-O-K,汉字"书"为什么要写成"书".虽然从字的发展上讲也有它的原因,但只要不是专门研究训诂的,就可以理解为:就是这么规定的,没什么道理好说.
至于楼上的解释相对于谭浩强的2000字来说,更是牵强.
----------------解决方案--------------------------------------------------------
T O : simpley 我看过你在本论坛的所有贴子以及 唯 C论坛的部分贴子,为人自负,固执已见,C的基础知识薄弱,对C的学习有方向性的错误,可以说到目前你尚未入门。这就是你给我的影象。 [QUOTE]*(a+1)=a[1]=&a[1]=a+1 这种问题不用深究.能明白就明白,不明白就算了,好读书不求甚解,就是这个意思. 这是一种重要的学习方法.[/QUOTE] 1。*(a+1)=a[1]=&a[1]=a+1 //这个不是胡说八道是什么?这个不是基础知识薄弱吗? 2。这种问题不用深究.能明白就明白,不明白就算了, //这种学习态度不是方向性错误吗?不明白这种问题就会犯你上面的错误,你不是就一个活生生的例子吗? 3.好读书不求甚解,就是这个意思. 这是一种重要的学习方法 //这也是你极力推崇的谭浩强教你的吗? 4,就是这么规定的,没什么道理好说. //谁规定的?怎么规定的?规定又是怎么样的?你见过吗?你知道吗?怎么会是没有道理好说? 5。至于楼上的解释相对于谭浩强的2000字来说,更是牵强. //我估计谭浩强的书上怕是没涉及到我上面所说的内容,只是估计,我没看过,因为一般教材中对“[]”是什么很少有涉及. //牵强在那里? 我还告诉你,谭浩强老师我很敬重,我的basic语言就是看他写的教材学的,虽然他的C教材我没看过,我想不会太差,但不会是“经典”之作仅一C语言普及型教材而已,这一点完全可以从网上的众多的评论得知。所以,你奉为至高至尚的书读了三年(或是要读三年)的书,只是入门级的书而已。不要一叶障目!做井底之蛙! 另:你说我是胡说八道,请指出错误之处。

[此贴子已经被作者于2005-5-26 20:35:01编辑过]


----------------解决方案--------------------------------------------------------
还望你想想再回贴。
----------------解决方案--------------------------------------------------------

simpley 所说的“*(a+1)=a[1]=&a[1]=a+1”确实有误;

knocker 所说的有理,但是不应该动气。


----------------解决方案--------------------------------------------------------
谭浩强的C教材应该来说是公认的,适合初学者,浅显易懂! 虽然我们上课不是用他的书但看过之后觉得的确是比我们那 本教材好。 PS:knocker消消气,公道自在人心,再者这里是学习的地方, 在如上之类的问题上是有绝对正确的答案,所以我们只要 陈述绝对正确的答案,明白者自会明白,不明白你再动气 也是往然…… 所以啊,出家人戒燥……嘿嘿!!!
----------------解决方案--------------------------------------------------------
  相关解决方案