【发布时间】:2018-03-25 15:34:47
【问题描述】:
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 并且它是成功的,但它不适用于二维。
如何使用指针访问数组内容?
谢谢。
【问题讨论】:
-
char*是temp的错误类型。你的编译器应该警告你。 -
尝试
char *temp = &test[0][0];创建指向第一个字符串的指针或temp = &test[1][0];指向第二个字符串。使用if (temp[2] == ch)访问这将访问temp指向的第三个字符。请记住,空终止符没有空间(请参阅下面的注释)。char test [2][4]= {"BbBa","CBAD"} ;是错误的,因为没有空间用于以 NULL 结尾的字符串。您必须留出空间,如char test [2][5]= {"BbBa","CBAD"} ;中的第五个字符用于终止 NULL。
标签: c pointers multidimensional-array comparison