数组/指针(C语言)

3

C语言中:

*(array) 等价于 array[0]

因此,*(array+2) 等价于 array[2]


请参阅C FAQ列表中的“数组和指针”部分:http://c-faq.com/aryptr/index.html - Sinan Ünür
4个回答

9

是的,例如:

假设:

int a[10];

那么

*(a + 2)

等同于

a[2]

为了保险起见。

并且仅仅是为了保险起见。
a[2]

等同于

2[a]

好的,你把我弄糊涂了。2[a] = a[2] 怎么可能呢? - James Black
Yup,存储地址2加上变量"a"的地址与变量"a"的地址加2是相同的! - James Anderson
1
我曾经有一个老板称之为“通过索引进行数组化”... :) - dicroce

2
您可能想查看以下链接以获得更多帮助: http://www.ibiblio.org/pub/languages/fortran/append-c.html

4) Taking a subscript with value i is equivalent to the operation: "pointer-add i and then type-dereference the sum", i.e.

      xxx[i] = *(xxx # i)
正如其他人提到的那样,答案是肯定的,但您可能需要更好地理解。

0
简单的回答是:是的。

1
简单的注释是:没有解释就毫无用处。 - Hannele

0

是的,没错。(填充到所需的15个字符长度。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接