C:使用指针访问二维数组


int main() {
char test [2][4]= {"BbBa","CBAD"} ; /*two dimensional array */
char ch = 'A'; /* match this character */
char *temp = &test; /* pointer to array */
int i=0;
if (temp[1][2] == ch){ /* if match to ch will print Yes */
    printf("Yes");
}
else{
    printf("No.");
}
getchar();
return 0;
}

嗨,这是一个关于创建指向二维数组的指针,然后进行比较的问题。

在一维中,我使用temp = &test并取得成功,但它不能用于二维。如何使用指针访问数组内容?谢谢。

您需要将temp声明为阵列的指针:

char (*temp)[4] = test;

这起作用,因为在大多数情况下,一个数组被转换为指向其第一个元素的指针。而且由于test是尺寸2的char[4]的数组,因此指向其类型为char(*)[4]

最新更新