【问题标题】:What does "int *[5]" indicate in c? [duplicate]“int * [5]”在c中表示什么? [复制]
【发布时间】:2015-12-27 10:29:38
【问题描述】:

我正在浏览我上一年在大学的学习资料,我看到了一个类似的问题:

int *aint a[5]int *[5] 有什么区别。最后一个代表什么?

【问题讨论】:

标签: c pointers


【解决方案1】:

int *a[5] 声明了一个指向 int 的指针数组。

最简单的方法是确定变量声明的细节是从右到左读取它。

【讨论】:

    【解决方案2】:

    简而言之:

    • int *a - 创建一个指向int 的指针。这应该包含另一个int 的内存地址。

      *a 的示例值为 0x000010x000057 等。

    • int a[5] - 创建一个包含五个int 元素的数组,每个元素包含一个int 值。

      这是数组中每个元素可能值的可视化:

      -------------------------
      | Array element | Value |
      -------------------------
      | a[0]          |     1 |
      | a[1]          |     2 |
      | a[2]          |     3 |
      | a[3]          |     4 |
      | a[4]          |     5 |
      -------------------------
      
    • int *a[5] - 创建一个数组,其中包含五个指向 int 元素的指针,每个元素包含另一个 int 的内存地址。

      这是指针数组中每个元素的可能值的可视化:

      -------------------------
      | Array element | Value |
      -------------------------
      | a[0]          | 0x000 |
      | a[1]          | 0x001 |
      | a[2]          | 0x002 |
      | a[3]          | 0x003 |
      | a[4]          | 0x004 |
      -------------------------
      

    【讨论】:

      猜你喜欢
      • 2020-04-25
      • 2012-10-10
      • 1970-01-01
      • 2019-11-08
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 2019-09-28
      相关资源
      最近更新 更多