指针数组
数据类型 * 数组名[数组长度说明]
例 int *p[4];
指针数组赋值与初始化
赋值:
main()
{
int b[2][3],*pb[2];
pb[0]=b[0];
pb[1]=b[1];
......
}
初始化:
main()
{
int b[2][3],*pb[ ]={b[0],b[1]};
...
}
指针数组赋值与初始化
初始化:
main()
{
char *p[]={"Fortran","Lisp","Basic",NULL};
...
}
赋值:
main()
{
char a[]="Fortran";
char b[]="Lisp";
char c[]="Basic";
char *p[4];
p[0]=a;
p[1]=b;
p[2]=c;
p[3]=NULL;
...
}
或:
mian()
{
char *p[4];
p[0]="Fortran";
p[1]="Lisp";
p[2]="Basic";
p[3]=NULL;
...
}
二维数组与指针数组的区别
char name[5][9]={“gain”,“much”,“stronger”,“point”,“bye”};
char *name[5]={“gain”,“much”,“stronger”,“point”,“bye”};
用指针数组处理二维数组
int main()
{
double b[2][3]={1,2,3,4,5,6};
double *pb[2];
int i,j;
pb[0]=b[0];
pb[1]=b[1];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++,pb[i]++)
cout<<*pb[i]<<" ";
cout<<endl;
}
return 0;
}
/*运行结果
1 2 3
4 5 6
*/
对字符串排序:(简单选择排序按字典顺序从小到大排序)
int main()
{
char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer"};
int n=5;
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[j],name[k])<0)
k=j;
if(k!=i)
{
temp=name[i];
name[i]=name[k];
name[k]=temp;
}
}
for(i=0;i<n;i++)
cout<<name[i]<<endl;
return 0;
}