小编Nim*_*ain的帖子

什么是“int (**p)[2];”?

问题是这样的:

#include <stdio.h>

int main()
{
    int a[2][2] = { {6, 2}, {3, 4} };
    
    int (**p)[2];
    p = a;
    
    for (int i = 0; i < 4; i++) {
        printf("%p\n", (*p + i));
        printf("%d\n", *(*p + i));
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我将其解释int(**p)[2];为一个指向大小为 2 的一维数组的双指针。

我得出这个结论是因为:

  1. int *p[2];表示大小为 2 的整数指针数组。
  2. int (*p)[2];表示指向大小为 2 的一维数组的整数指针。

所以,

  1. int **p[2];表示大小为 2 的整数双指针数组。
  2. int (**p)[2];表示指向大小为 2 的一维数组的整型双指针。

1、2、3 和 4 项陈述中哪些是正确的,哪些需要更正?

因此,这段代码的输出是什么?

在这里尝试过。

c arrays pointers for-loop implicit-conversion

1
推荐指数
1
解决办法
696
查看次数

标签 统计

arrays ×1

c ×1

for-loop ×1

implicit-conversion ×1

pointers ×1