一个变量居然能表示2种类型,求解
1#include "stdio.h"2void print(char *name[],int n)
3{
4 int i;
5 for(i=0;i<n;i++)
6 printf("%s\n",name[i]);
7}
8void sort(char *name[],int n)
9{
10 char *temp;
11 int i,j,k;
12 for(i=0;i<n;i++)
13 {
14 k=i;
15 for(j=i+1;j<n;j++)
16 if(strcmp(name[k],name[j])>0) k=j;
17 if(k!=i)
18 {
19 temp=name[i];
20 name[i]=name[k];
21 name[k]=temp;
22 }
}
}
void main()
{
char *name[]={"follow me","basic","great wall","fortran","computer design"};
int n=5;
sort(name,n);
print(name,n);
}
上面的程序运行正常,但是有些地方实在不明白。
从第16行看,name[i]表示的是字符串;但是从19~21行和第10行看name[i]又表示的是指针;如此为什么没有错误呢?请高手不吝赐教,不胜感激。