int a;
int * pa=&a;
int ** ppa=&pa;
类型 函数名(形参表列)
{
}
类型 数组名[常量]
int * a[10]
int x[10]
指针指向数组
前提
int a[10];
int *pa=a; //int pa=&a[0];
pa+i<>a+i<>&a[i]<>&pa[i]
*(pa+i)<>(a+i)<>a[i]<>pa[i]
遍历数组
int a[10];
int *pa=a; //int *pa=&a[0];
for(;pa<a+10;pa++)
{
scanf("%d’,pa);
//printf("%d",*pa);
}
习题1
int a,b,c,t;
int *pa,*pb,*pc;
pa=&a;
pb=&b;
pc=&c;
scanf()
if(a>b)
{
t=a;
a=b;
b=t;
}
if(*pa>*pb)
{
t=*pa;
*pa=*pb;
*pb=t;
}
习题3
void main()
{
void input(int a[],int size);//void input(int *,int );
int a[10];
input(a,10);
change1(a,10);
output(a,10);
}
void input(int a[],int size)//void input(int *a,int size)
{
int *p=a;
for(;a<p+size;a++)
{
scanf("%d",a);
}
}
void output(int a[],int size)//void input(int *a,int size)
{
int *p=a;
for(;a<p+size;a++)
{
printf("%d “,*a);
}
}
void output1(int a[],int size)//void input(int *a,int size)
{
int i;
for(i=0;i<size;i++)
{
printf(”%d ",a[i]);
}
}
void change(int a[],int size)
{
int min=*a;
int *p=a;
int i=0;
int t=0;
for(;a<p+size;a++,i++)
{
if(min>*a)
{
min=*a;
t=i;
}
}
if(t!==0)
{
x=a[t];
a[t]=a[0];
a[0]=x;
//exchange(&a[t],&a[0]);
}
}
void change1(int a[],int size)
{
// int min=*a;
int i;
int t=0,x;
void exchange(int pa,pb);
for(i=0;i<size;i++)
{
/if(min>a[i])
{
min=a[i];
t=i;
}/
if(a[t]>a[i])//if((a+t)>(a+i))
{
t=i;
}
}
if(t!==0)
{
x=a[t];
a[t]=a[0];
a[0]=x;
//exchange(&a[t],&a[0]);
}
t=0;
for(i=0;i<size;i++)
{
if(a[t]<a[i])//if(*(a+t)<*(a+i))
{
t=i;
}
}
if(t!=size-1)
{
/*x=a[t];
a[t]=a[size-1];
a[size-1]=x;
*/
exchange(&a[t],&a[size-1]);
}
}
void exchange(int *pa,*pb)
{
int t;
t=*pa;
*pa=*pb;
*pb=t;
}
习题2
#include “stdio.h”
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},b[10];
int m;
scanf("%d",&m);
}
void fun(int *pa,int *pb,int size,int m)
{
int i;
for(i=0;i<m;i++)
{
pb[i]=pa[size-m+i];
}
for(i=m;i<size;i++)
{
pb[i]=pa[i-m];
}
}
void fun1(int *pa,int *pb,int size,int m)
{
int *a=pa,i;
pa=a+size-m;
for(i=0;i<m;i++)
{
*pb++=pa++;
}
/
for(i=0;i<m;i++,pa++,pb++)
{
*pb=pa;
}/
pa=a;
for(i=0;i<size-m;i++)
{
*pb++=*pa++;
}
}
数组元素逆置
#include “stdio.h”
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
void fun1(int *pa,int size);
void output(int a[],int size);
fun1(a,10);
output(a,10);
}
void fun(int pa[],int size)
{
int i=0,j=size-1,t;
for(;i<j;i++,j–)
{
t=pa[i];
pa[i]=pa[j];
pa[j]=t;
}
}
void fun1(int *pa,int size)
{
int *pb=pa+size-1,t;
for(;pa<pb;pa++,pb–)
{
t=*pa;
*pa=*pb;
*pb=t;
}
}
void output(int a[],int size)//void input(int *a,int size)
{
int *p=a;
for(;a<p+size;a++)
{
printf("%d ",*a);
}
}