#include<stdio.h>
#include<string.h>
int main()
{
void sort(char * name[],int n);
char * name[]={"Follow me","Basic","Great Wall","FORTRAN","Computer Design"};
int i,n=5;
sort(name,n);
for(i=0;i<n;i++)
printf("%s\n",name[i]);
return 0;
}
void sort(char * name[],int n)
{
int i,j,k;
char *temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[k],name[j])>0)
k=j;
if(i!=k)
{
temp=name[i];
name[i]=name[k];
name[k]=temp;
}
}
}
书上说,不用字符串数组而用字符串指针的原因是字符串长度不一,使用 数组必须制定
长度会造成内存浪费.比如有的字符串的长度次是6,8,20,22,25. 我对它的理解是那如果
用字符串数组就必须指定列长度为25,则第一个字符串有很多空值,造成浪费,那字符数组
则是在第一个字符串之后马上存储第二个字符串,它们应存储在连续的内存空间,才节省内存
但事实相反,用字符串指针在内存中也有很多空值,如下图所示,求解惑