【 在 codeAnimal (以后是码农) 的大作中提到: 】
: 标 题: Re: c++的数据组下标到底是有符号还是无符号的
: 发信站: 水木社区 (Fri Jan 17 17:45:58 2020), 站内
:
: 普通数组就是有符号。C89标准就是这样了。
: C89的这段大概率是从汇编来的,
: 比如A[B],标准要求A和B中一个是指针或者能转成指针,另一个是整数。
: 所以a[-1], -1[a], *(a-1), *(-1+a)都是等价的。
: 你看看汇编就是把数字放在括号外边:
: movq $0, -48(%rbp)
汇编有两种语法 style。
这个是 gcc 的默认 style 的语法。
还有 intel style 的汇编,就是 [rbp - 48]
一个主要区别就是 intel style 是 mov dst, src;
默认 style 则反过来。。。
[rbp-48] 这种属于叫做内存中的操作数的寻址,形式
base(register) + index * scale + displacement
: 后面的这个-48(%rbp)就相当于C语言里的数据访问。
:
: 【 在 telangpujing 的大作中提到: 】
: : a[-1] 是 访问a[2^32 -1]?
: --
: ※ 修改:·codeAnimal 于 Jan 17 17:46:48 2020 修改本文·[FROM: 222.190.253.*]
: ※ 来源:·水木社区
http://m.newsmth.net·[FROM: 222.190.253.*]
--
修改:codeAnimal FROM 222.190.253.*
FROM 211.95.56.*