十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
strcmp的参数里p[j]和p[j+1]是指针数组的元素,里边存放的是字符串的首地址。在C语言中,字符串都是用首地址来表明的,所以可以吧指针数组中的地址值说成是代表字符串。
成都创新互联公司主营海陵网站建设的网络公司,主营网站建设方案,app软件开发公司,海陵h5成都小程序开发搭建,海陵网站营销推广欢迎海陵等地区企业咨询
#includestdio.h
#includestring.h
int main()
{
void sort1(char **p1);
void print(char **p2);
static char *name[]={"zhang","wang","li","zhao","abe"};
sort1(name);
print(name);
return 0;
}
void sort1(char **p1)
{
int i,j;
char *p;
for(i=0;i4;i++)
for(j=i+1;j5;j++)
if(strcmp(p1[i],p1[j])=0)
{
p=p1[i];
p1[i]=p1[j];
p1[j]=p;
}
}
void print(char *p2[])
{
int i;
//getchar();
for(i=0;i5;i++)
printf("%s\n",*(p2+i));
}
数组名就是指针,例如:
#include stdio.h
void pr(char *p)
{
printf(p);
}
void main(void)
{
char s[] = "abc";
pr(s);
}
扩展资料:
注意事项
非数组类的声明尽量以指针的方式进行比较好。倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导。类似的,如果指向的是一个数组区域,则会给人以更加丰富的信息。例如:
int main(int argc,char* argv[])
{
/* code here */
}
与
int main(int argc,char** argv)
{
/* code here */
}
两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义。