2d char数组和char指针

时间:2015-02-05 14:35:13

标签: c arrays pointers char

我有一个char的数组,并使用嵌套的for循环进行初始化。

如何使用a[i][j]指针访问数组的每个元素,例如char

我试过* (* (p+i)+j)这给了我一个一元错误。我也尝试了以下内容:

char a[maxr][maxc];
char *p = 0;
p = &a[0][0];
int i,j;
for (i = 0; i < r-1; i++){
    for (j = 0; j < c-2; j++){
         while (*p != '\0'){
               *p = 'Y';
               p++;
         }
    }
}

如果我这样做:

char a[maxr][maxc];
    char *p = 0;
    p = &a[0][0];
    int i,j;
    for (i = 0; i < r-1; i++){
          p = p+i;  
        for (j = 0; j < c-2; j++){
            p = p+j;
             while (*p != '\0'){
                   *p = 'Y';
                   p++;
             }
        }
    }

这似乎遍历阵列;但是,我不太确定这是否是正确的方法。

2 个答案:

答案 0 :(得分:1)

假设a被定义为char *a[m]m > i

要获得a[i][j]的值,您必须使用类似

的内容
char ** p = a;

*(*(p + i) + j)

已提供,ij a 有效索引位置。

答案 1 :(得分:0)

r是总行, 试试这个:

*(p+i*r +j)