#include <iostream>
using namespace std;
int main( )
{
void sort(char *name[],int n); //声明函数
void print(char *name[],int n); //声明函数
char *name[]={"BASIC","FORTRAN","C++","Pascal","COBOL"}; //1.这里我理解不是指针数组name里的元素是存放了指向各个字符串的首地址,有错吗?就是name[0]是存放里“BASIC”里的B的首地址。因为是char类型。
int n=5;
sort(name,n);
print(name,n);
return 0;
}
void sort(char *name[],int n)
{
char *temp;
int i,j,k;
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;//2,这里我理解name[k]都是地址内容,*name[k]才是取值吧?这样比较地址我就迷糊里?
if(k!=i)
{
temp=name[i];name[i]=name[k];name[k]=temp; //3.temp=name[i]不是正好说明赋值的是地址?
}
}
}
void print(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
cout<<name[i]<<endl;//4.既然说指针数组存放的都是指针变量,而指针变量存放的是地址,这样输出不是输出的存放的地址值?
}
解惑不胜感激🐔,