C中的数组是通过指针使用的吗?

时间:2011-01-23 08:37:49

标签: c arrays pointers

我在这里发布的一个问题:C++ - class issue

其中一封来自@SanSS的回复提到了回复的以下部分:

C中的数组通过指针使用......

这是怎么做到的?并且,如果可能的话,你能通过一个例子澄清这个吗?

感谢。

2 个答案:

答案 0 :(得分:5)

这意味着什么可能是一些事情:

1)下标运算符是根据指针算法定义的。 C99 6.5.2.1/2“数组下标”说:

  

下标运算符[]的定义是E1 [E2]与(*((E1)+(E2)))相同。

例如,假设您有一个像这样的数组:char s[] = "012345";

以下所有评估为'4':

  • s[4]
  • *(s + 4)
  • 4[s] - 这个 不寻常的构造可能会让你大吃 但是因为那样 下标由。定义 标准,相当于*(4 + s),与*(s + 4)相同 与s[4]相同。

2)(与上述密切相关)数组名称在大多数表达式中计算指向数组的第一个元素的指针(作为主要异常的sizeof操作的操作数)。

答案 1 :(得分:5)

pointer此链接可帮助您了解如何通过指针使用数组。

抱歉我的英语。