*p和p到底是什么关系?高人解释解释···
程序代码:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NMEMB 50
#define SIZE 10
int compar(const void *a,const void *b)
{
return(strcmp((char *)a,(char *)b));
}
main()
{
char data[NMEMB][SIZE]={"linux","freebsd","solzris","sunos","window"};
char key[80],*base,*offset;
int i,nmemb=NMEMB,size=SIZE;
for(i=1;i<5;i++)
{
fgets(key,sizeof(key),stdin);
key[strlen(key)-1]='\0';
base=data[0];
offset=(char *)lfind(key,base,&nmemb,size,compar);
if(offset==NULL)
{
printf("%s not found!\n",key);
offset=(char *)lsearch(key,base,&nmemb,size,compar);
printf("ADD %s to data array\n",offset);
}
else
{
printf("found:%s\n",offset);
}
}
}
上面这个程序是在gcc下线性查找的例子;offset=(char *)lfind(key,base,&nmemb,size,compar);//lfind的返回值是一个指针为什么printf("found:%s\n",offset); 用offset,而不用*offset,是不是和上面的强制转换有关系?
谁能解释下??谢谢!!!










