一个数组,若其元素均为指针类型数据,称为指针数组。
That’s to say指针数组中的每一个元素都存放一个地址,相当于一个指针变量。
类型名 *数组名[数组长度];
int *p[4];
Attention:int (* p)[4] //是指向一维数组的指针变量
指针数组适合指向若干个字符串
例8.27 将若干个字符串按字母顺序(有小到大)输出。
include<stdio.h>
int main()
{
void sort(char *name[],int n);
void printf(char *name[],int n);
int n=5;
char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
sort(name,n);
printf(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;
if(k!=i)
{
temp=name[i];name[i]=name[k];name[k]=temp;
}
}
}
}
void printf(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%s\n",name[i]);
}
}
//int i=0;
//char *p=name[0];
//while(i<n)
//{
// p=*(name+i++);
// printf("%s\n",p);
//}
某些情况下,main函数有参数
int main(int argc,char *argv[])
argc (argument count)参数个数的意思
argv (argument vector)参数向量的意思,它是一个*char指针数组,数组中的每一个元素(其值为指针)指向命令行的一个字符串。
此命令行的一般形式:
命令名 参数1 参数2······参数n
假设可执行文件名为file1.exe,要把两个字符串“China”,“BeiJing”作为传送给main函数的参数。
file1 China BeiJing