例题10-26 将若干字符串按字母顺序(由小到大)输出;
//例题10-26 将若干字符串按字母顺序(由小到大)输出;
#include<stdio.h>
#include<string.h>
void sort(char *name[],int n)//name:指针数组名,接受实参传过来的name数组0行的地址
{
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 )//name[k]所指的字符串大于name[j]所指的字符串,则此函数值为正
k=j;//将串小的那个串的序号保留在变量k中
if(k!=i)
{
temp=name[i];
name[i]=name[k];
name[k]=temp;
}
}
}
void print(char *name[],int n)
{
for(int i=0;i<n;i++)
printf("%s\n",name[i]);// name[i]各字符串的首地址
}
int main()
{
char *name[]={
"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
//定义指针数组name
int n=5;
sort(name,n);
print(name,n);
return 0;
}
运行结果:
例题10-27 使用指向指针的指针
//例题10-27 使用指向指针的指针
#include<stdio.h>
int main()
{
char *name[]={
"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
char **p; // p是指向指针的指针变量
for(int i=0;i<5;i++)
{
p=name+i;
printf("%s\n",*p); //*p == name[i]的值
}
return 0;
}
例题10-28 指针数组的元素指向整型数据。
//例题10-28 指针数组的元素指向整型数据。
#include<stdio.h>
int main()
{
int a[5]={
1,3,5,7,9};
int *num[5]={
&a[0],&a[1],&a[2],&a[3],&a[4]};
int **p,i;
p=num;
for(i=0;i<5;i++)
{
printf("%d ",**p);
p++;
}
printf("\n");
return 0;
}
运行结果: