61
main()
{
int x,y,z; /* 定义三个int型变量 */
int *xp = &x, /* 定义指针变量xp,并赋值为x的地址,使xp指向x */
*yp = &y, /* 定义指针变量yp,并赋值为y的地址,使yp指向y */
*zp = &z; /* 定义指针变量zp,并赋值为z的地址,使zp指向z */
int t;
clrscr();
printf("\nPlease input x,y,z:\n");
scanf("%d%d%d",xp,yp,zp); /* 通过变量的指针,为变量输入值 */
if(*xp>*yp) /* 通过指向变量的指针引用变量的值 */
{
t=*xp; /* 通过指向变量的指针引用变量的值 */
*xp=*yp;/* 通过指向变量x的指针xp,引用变量x的值 */
*yp=t; /* 通过指向变量y的指针yp,引用变量y的值 */
}
if(*xp>*zp) /* 通过指向变量的指针,引用变量的值 */
{
t=*xp; /* 通过指向变量x的指针xp,引用变量x的值 */
*xp=*zp;/* 通过指向变量x的指针xp,引用变量x的值 */
*zp=t; /* 通过指向变量z的指针zp,引用变量z的值 */
}
if(*yp>*zp) /* 通过指向变量的指针,引用变量的值 */
{
t=*yp; /* 通过指向变量的指针,引用变量的值 */
*yp=*zp;/* 通过指向变量y的指针yp,引用变量y的值 */
*zp=t;/* 通过指向变量z的指针zp,引用变量z的值 */
}
printf("x = %d\ty = %d\tz = %d\n",x,y,z);
printf("\nPress any key to quit...\n");
getch();
}
62
int a[ ]={1,2,3,4,5};
#define N sizeof a/sizeof a[0]
main()
{
int j, /*游标变量*/
*p; /*指针变量*/
clrscr();
for(j=0;j<N;j++)/*数组名和下标顺序访问数组的元素*/
printf("a[%d]\t= %d\t",j,a[j]);
printf("\n");
for(p=a;p<a+N;p++)/*让指针顺序指向数组的各元素,遍历数组*/
printf("*p\t= %d\t",*p);
printf("\n");/*指针与游标变量结合,改变游标变量遍历数组*/
for(p=a,j=0;p+j<a+N;j++)
printf("*(p+%d)\t= %d\t",j,*(p+j));
printf("\n");/*指针与游标变量结合,用指针和下标遍历数组*/
for(p=a+N-1,j=N-1;j>=0;j--)
printf("p[-%d]\t= %d\t",j,p[-j]);
printf("\nPress any key to quit...\n");
getch();
}
63
#include <stdio.h>
#define MAX 20
int search(int *apt,/*已知数表的首元指针*/
int n,/*数表中元素个数*/
int key)/*要寻找的值*/
{
int *p;
for(p=apt;p<apt+n;p++)
if(*p==key)
return p-apt;/*返回找到元素的下标*/
return -1;
}
int *find(int *apt,/*已知数表的首元指针*/
int n,/*数表中元素个数*/
int key)/*要寻找的值*/
{
int *p;
for(p=apt;p<apt+n;p++)
if(*p==key)
return p;/*返回找到元素的指针*/
return NULL;
}
int a[]={90,80,70,60,50,40,30,20,10,9,8,7,6,5,42,40,50,1,2,3};
main()
{
int i,key;
clrscr();
printf("The elements of array a is:\n");
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
printf(" %d",a[i]);
printf("\nThe address of a[0] is: %d.\n",&a[0]);
puts("\nPlease input the key number you want to search:");
scanf("%d",&key);
i=search(a,sizeof(a)/sizeof(a[0]),key);
printf("\nThe label number of the key number %d in the array is: %d.",key,i);
printf("\nThe point value of the key number %d in the array is: %d.",key,find(a, sizeof(a)/sizeof(a[0]),key));
puts("\n\n Press any key to quit...");
getch();
}