搜索
查看: 908|回复: 11
打印 上一主题 下一主题

【教程】p[j]是数组吗?——APPLE

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-18 10:15:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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]也好,仅仅是一种省略写法,本质上讲,与数组是没有关系的。
沙发
发表于 2014-10-18 11:38:48 | 只看该作者
涨姿势wwwwww
板凳
发表于 2014-10-18 11:47:52 | 只看该作者
小学生就别写什么教程了
地板
 楼主| 发表于 2014-10-18 12:48:59 | 只看该作者

                       
5#
发表于 2014-10-18 21:18:16 | 只看该作者
rosynirvana 发表于 2014-10-18 11:47
小学生就别写什么教程了

不要在意这些细节wwwwwwww
6#
发表于 2014-10-18 21:18:25 | 只看该作者
7#
发表于 2014-10-19 20:57:40 | 只看该作者
{:soso_e127:}
8#
 楼主| 发表于 2014-10-19 21:06:15 | 只看该作者

Orz
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
9#
发表于 2014-10-20 15:07:55 | 只看该作者
4399APPLE 发表于 2014-10-19 21:06
Orz
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

你怎么可以模仿哥呢!哥只是一个传说
10#
 楼主| 发表于 2014-10-20 18:53:21 | 只看该作者
超神级 发表于 2014-10-20 15:07
你怎么可以模仿哥呢!哥只是一个传说

看来你还
  1. OTZ
复制代码
11#
发表于 2014-10-22 08:19:55 | 只看该作者

...开玩笑!以后就没时间上网了、1
12#
发表于 2014-10-31 18:58:35 | 只看该作者
这是不是30天写系统上面的??
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表