6.7指针熬组和指向指针的指针 一、指针数组的概念 如果一个数组,其元素均为指针类型数据, 该数组称为指针数组。 一维指针数组的定义形式为 类型名*数组名[数组长度]; 例如 int *p[4]; 可以用指针数组中各个元素分别指向若干 个字符串,使字符串处理更加方便灵活
6.7 指针数组和指向指针的指针 一、指针数组的概念 如果一个数组,其元素均为指针类型数据, 该数组称为指针数组。 一维指针数组的定义形式为 类型名 *数组名[数组长度]; 例如 int *p[4]; 可以用指针数组中各个元素分别指向若干 个字符串,使字符串处理更加方便灵活
6.7指针数组和指向指针的指针 例:若干字符串按字母顺序(由小到大)输出。 #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"}; //定义指针数组 int n=5; sort(name,n); print(name,n) return O; }
6.7 指针数组和指向指针的指针 例:若干字符串按字母顺序(由小到大)输出。 #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″}; //定义指针数组 int n=5; sort(name,n); print(name,n); return 0; }
6.7指针数组和指向指针的指针 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<njj++) if(strcmp(name[k],name[j])>0)k=j; if(k!=i){temp=name[i];name[i]=name[k] name[k]=temp;} } } 运行结果为 void print(char *name[],int n) BASIC int i; COBOL for(i=0;i<n;i++) C++ cout<<name[i]<<endl; FORTRAN Pascal
6.7 指针数组和指向指针的指针 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; if(k!=i) { temp=name[i];name[i]=name[k]; name[k]=temp;} } } void print(char *name[],int n) { int i; for(i=0;i<n;i++) cout<<name[i]<<endl; } 运行结果为 BASIC COBOL C++ FORTRAN Pascal