strcmp的參數(shù)里p[j]和p[j+1]是指針數(shù)組的元素,里邊存放的是字符串的首地址。在C語言中,字符串都是用首地址來表明的,所以可以吧指針數(shù)組中的地址值說成是代表字符串。
為哈爾濱等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及哈爾濱網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、網(wǎng)站設(shè)計(jì)、哈爾濱網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
#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));
}
數(shù)組名就是指針,例如:
#include stdio.h
void?pr(char *p)
{
printf(p);
}
void main(void)
{
char s[] = "abc";
pr(s);
}
擴(kuò)展資料:
注意事項(xiàng)
非數(shù)組類的聲明盡量以指針的方式進(jìn)行比較好。倘若一個(gè)指針指向的內(nèi)存并不是一個(gè)數(shù)組,那么采用數(shù)組名的聲明方式或許就會(huì)給人產(chǎn)生錯(cuò)誤的引導(dǎo)。類似的,如果指向的是一個(gè)數(shù)組區(qū)域,則會(huì)給人以更加豐富的信息。例如:
int main(int argc,char* argv[])
{
/* code here */
}
與
int main(int argc,char** argv)
{
/* code here */
}
兩種方式完全等價(jià),但是前面一種能夠更清晰地看出:這個(gè)參數(shù)是指向某個(gè)元素起始地址的指針,而后面的這種方式則不能夠直觀地看出這種含義。