我有一个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++;
}
}
}
这似乎遍历阵列;但是,我不太确定这是否是正确的方法。
答案 0 :(得分:1)
假设a
被定义为char *a[m]
(m > i
)
要获得a[i][j]
的值,您必须使用类似
char ** p = a;
和
*(*(p + i) + j)
已提供,i
和j
a 有效索引位置。
答案 1 :(得分:0)
r是总行, 试试这个:
*(p+i*r +j)