什么" int * [5]"用c表示?

时间:2015-12-27 10:29:39

标签: c pointers

我正在读大学前一年的学习材料,我看到了一个问题:

int *aint a[5]int *[5]之间有何区别?最后一个表示什么?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

简而言之:

  • 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 |
    -------------------------