说起他的都是废话;直接上例子讲解。
void max_min(array1) int array1[10]; { int *max,*min; //-----------(1) 定义了两个指针变量 max,min int k,l; int *p,*end_p; end_p=array1+10; //-----------(2) 将 数组array1[0]地址+10作为一个新地址赋给 end_p 这个指针 max= array1; //-----------(3) 将array1[0]的地址位赋给 max,将max的指针指向 array1数组。 min= array1; for (p=array1+1;p p++ 是指针所绑定的地址加 1,即指针指向和原来相邻的一个变量 { if (*p>*max) max=p; //-----------(4)将指针p和指针max所指的变量的值进行比较,将比较大的那个变量的地址赋给 max这个指针,即指针max始终指向一个大的数据
if (*p<*min) min=p; }
k=*max; //-----------(5)将指针max所指向的变量的值赋给k *max=array1[0];array1[0]=k; //-----------(6) 将array1[0]的值赋给指针max所指向的变量 l=*min; *min=array1[9];array1[9]=l; return; }
PS: max=&array1[0],是将array1[0]的地址赋给指针max
-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。
自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。