指向指针的指针与二维字符数组的问题?
问题:将二维字符数组的数组名赋值给 指向指针的指针 为什么会出现错误?
<*****************代码如下*******************>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//判断数组中是否存在与描述单词相匹配的单词,如果有返回其索引值
void main( )
{
int a;
char const *desired_word="hzp";
char keyword_table[][4]={"hap","hpp","hzp"};
char **kwp;//声明指向指针的指针
for(kwp = keyword_table;kwp<keyword_table+3;kwp++)
if(strcmp(desired_word,*kwp)==0)
a= kwp-keyword_table;
else a= -1;
printf("%d\n",a);
system("pause");
} 指针 二维数组
[解决办法]
类型不匹配。
kmp的定义和for循环那行改为
char (*kwp)[4] = keyword_table;//声明指向指针的指针
for(int i = 0;i < 3;i++,kwp++) // 数组名keyword_table不可以进行算术运算