#字符串数组传递问题,我将字符串数组传递到了函数中进行排序,但是传进后进行排序后,结果异常,我的理解是我将第一个字符串"d4"的地址作为首地址传递给了函数中的指针p,当p+1后将会指向下一个字符串“a4”,我不知道是代码的问题还是我理解的问题,希望各位答主指点我下
问题与结果如下
#include<stdio.h>
#include<math.h>
#include<string.h>
int exchange(char *p);
int main()
{
char a[][10]={"dddd","aaaa","cccc","bbbb","eeee","llll","kkkk","oooo","pppp","cccc"};
int i;
for(i=0;i<10;i++)
{
printf("%s\n",a[i]);
}
printf("\n");
exchange(a[0]);
printf("排序后");
for(i=0;i<10;i++)
{
printf("%s\n",a[i]);
}
}
int exchange(char *p)
{
int i,j;
char b[5]={"ssss"};
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(strcmp(p+j,p+j+1)>=0)
{
strcpy(b,p+j+1);
strcpy(p+j+1,p+j);
strcpy(p+j,b);
}
}
}
}