啊哈磊_编程从这里起步

标题: 【教程】p[j]是数组吗?——APPLE [打印本页]

作者: 4399APPLE    时间: 2014-10-18 10:15
标题: 【教程】p[j]是数组吗?——APPLE
本帖最后由 4399APPLE 于 2014-10-19 08:33 编辑

    写的不好的C语言教科书里,往往会说p[j]是数组p的第j个元素。这虽然也不算错,但终究有些敷衍。如果你不懂汇编,这种说法是最省事的。
    p[j]和*(p + j)的意思完全相同。要么是嫌后者太长太麻烦或者是为了看起来好看就会使用这种写法。在这个例子中,*(p + j)是6个字符,而p[j]只有4个字符。区别只有这一点,所以大家可以根据喜好使用。p[j]只不过是一个看起来像数列的使用了简便变量的写法。
    反过来说,也可以将p[0]写成*p,写成指针的样子倒是节省了2个字符。总之,根据情况,选择自己喜欢的就行了。
    不是说改变一下写法,地址变量就变成数组了。大家不要被那些教科书骗了,编译后生成的Machine language完全一样,这比什么都能够说明,意思没有变化,只是写法不同。
    再多说几句,加法运算可以交换顺序,所以将*(p + j)写成*(j + p)也是可以的。同理,将p[j]写成j[p]也是可以的(可能你会不相信,但这样写既不会出错,也能正确运行)。a[10]也可以写成10[a](这当然也是真的)。难道说这是名字叫做10的数组的第a个元素吗?当然不是。所以,p[j]也好,j[p]也好,仅仅是一种省略写法,本质上讲,与数组是没有关系的。

作者: cad20020601    时间: 2014-10-18 11:38
涨姿势wwwwww
作者: rosynirvana    时间: 2014-10-18 11:47
小学生就别写什么教程了
作者: 4399APPLE    时间: 2014-10-18 12:48
cad20020601 发表于 2014-10-18 11:38
涨姿势wwwwww

                       
作者: cad20020601    时间: 2014-10-18 21:18
rosynirvana 发表于 2014-10-18 11:47
小学生就别写什么教程了

不要在意这些细节wwwwwwww
作者: cad20020601    时间: 2014-10-18 21:18
4399APPLE 发表于 2014-10-18 12:48

wwwwwwwwwwwww
作者: 超神级    时间: 2014-10-19 20:57
{:soso_e127:}
作者: 4399APPLE    时间: 2014-10-19 21:06
超神级 发表于 2014-10-19 20:57

Orz
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
作者: 超神级    时间: 2014-10-20 15:07
4399APPLE 发表于 2014-10-19 21:06
Orz
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

你怎么可以模仿哥呢!哥只是一个传说
作者: 4399APPLE    时间: 2014-10-20 18:53
超神级 发表于 2014-10-20 15:07
你怎么可以模仿哥呢!哥只是一个传说

看来你还
  1. OTZ
复制代码

作者: 超神级    时间: 2014-10-22 08:19
4399APPLE 发表于 2014-10-20 18:53
看来你还

...开玩笑!以后就没时间上网了、1
作者: Cminister    时间: 2014-10-31 18:58
这是不是30天写系统上面的??




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2