数组与指针笔记(一) 以C语言代码为例

#include <stdio.h>
#include <stdlib.h>
void huan (int a[],int ,int *,int *);   //注意对应下面的类型  (错误提醒confilcting types for 'huan')
                                       
int main()
{    int arr[]={1,2,3,4,5,6,7,8,9};
     int max=arr[0] ,min=arr[0];


     huan ( arr,sizeof(arr)/sizeof(arr[0]),&max,&min  )//此时传入 arr 相当于指针地址

                                                                                                   //sizeof(arr)/sizeof(arr[0]) 计算数组个数 ;

                                                                                                   //sizeof(arr)表示整个数组所占的字节数,sizeof(arr[0])表示一个单元所占的字节

         

            printf ("%p\n",arr[0]);    //打印arr[0]的地址;

           printf ("%d %d",max,min);  


    return 0;
}


void huan (int a[],int len ,int *p,int *q)   //等价  void huan (int [],int len ,int *p,int *q)
                                                                           //   或void huan (int *a,int len ,int *p,int *q)

{
         int i;


   for(i=1;i<len ;i++)
        {
             if(a[i]>*p)
              {
               *p=a[i];
              }
             if(a[i]<*q)
              {
               *q=a[i];
              }


        }




}


/*数组和数组之间不能相互赋值
   
   int a[10];
   int b[10];
   
   不能 a[]=b;
   或 a=b;
   但是int *p =b  是可以的;
   
   原因 int a[] 等价于 int  *const b [] ;const 意思是不能改变 b 的值;
*/

猜你喜欢

转载自blog.csdn.net/qq_41199502/article/details/79186174