对于指针,我有自己的一些通俗的理解,是将变量地址作为运算的一种指示。
#include<stdio.h>
void swap(int *pa,int *pb);
int main()
{
int a=5;
int b=6;
swap(&a,&b);
printf("%d,%d",a,b);
return 0;
}
void swap(int *pa,int *pb)
{
int t=*pb;
*pb=*pa;
*pa=t;
}
上图为交换数值。
下图为简单的数组最值获取:
#include<stdio.h>
void minmax(int a[],int len,int *max,int *min);
int main(void)
{
int a[]={1,2,3,4,5,6,7,8,9,12,13,14,16,17,22,54};
int min,max;
minmax(a,sizeof(a)/sizeof(a[0]),&min,&max);
printf("min=%d,max=%d\n",min,max);
return 0;
}
void minmax(int a[],int len,int *max,int *min)
{
int i;
*min=*max=a[0];
for ( i = 0; i < len; i++)
{
if(a[i]<*min){
*min=a[i];
}
if(a[i]>*max){
*max=a[i];
}
}
}