指向每个指针指向数组的指针数组的指针

时间:2016-09-18 03:32:29

标签: c arrays pointers malloc

我在C中遇到了麻烦,创建了一个指向指针数组的指针,其中数组中的每个指针都指向一个数组。我在设置它并在每个数组中存储值时遇到了问题。目标是避免数组索引并仅使用指针算法。如何正确实现这个想法并存储以后访问的值的一个例子将有助于我理解指向函数的指针,指向数组的指针和指针算法。我知道如何使用malloc和calloc。我知道基本的指针,但这个问题更先进,所以如何实现这一点的一些例子将有很大帮助!谢谢! :)

1 个答案:

答案 0 :(得分:0)

从你的描述中听起来好像你需要这样的东西:

#include <stdio.h>

int main(void) {
    // Make some arrays of ints
    int a0[3] = {1, 2, 3};
    int a1[3] = {4, 5, 6};

    // To access element a1[2] do *(a1 + 2)
    printf("%d\n", *(a1 + 2));

    // Make an array of int pointers
    int* b[2] = {a0, a1};              // Or:  int* b[2];
                                       //      *(b + 0) = a0;
                                       //      *(b + 1) = a1;

    // To access element a1 do *(b + 1)
    // To access a1[1] through b just combine the two expressions
    // so that you have *(*(b + 1) + 2)
    printf("%d\n", *(*(b + 1) + 2));

    return 0;
}

一般情况下:访问b[i][j]执行*(*(b + i) + j)