编辑代码

#include <stdio.h>
// int main () {
    // int i=0;
    // int p;
    // p=(int)&i;
    // printf("0x%x\n",p);
    // printf("%p\n",&i);
    // printf("%lu\n",sizeof(int));
    // printf("%lu\n",sizeof(&i));


    // int a[10]; 
    // printf("%p\n",&a); //0x7ffc1bda48d0
    // printf("%p\n",a);//0x7ffc1bda48d0
    // printf("%p\n",&a[0]);//0x7ffc1bda48d0
    // printf("%p\n",&a[1]);//0x7ffc1bda48d4
    // return 0;

    // int i=6;
    // printf("&i=%p\n",&i);// &i=0x7fffd89b812c
    // f(&i);
    // g(i);
    // return 0;

// }  


// void f(int *p){
//     printf(" p=%p\n",p); // p=0x7fffd89b812c
//     printf(" p=%d\n",*p); //p=6
    
// }

// void g(int k){
//     printf("k=%d\n",k);//k=6
// }


// void f(int *p){
//     printf(" p=%p\n",p); // p=0x7fffd89b812c
//     printf(" p=%d\n",*p); //p=6
//     *p = 99;
    
// }

// void g(int k){
//     printf("k=%d\n",k);//k=99
// }





// void swap(int *pa,int *pb);

// int main(void){
//     int a = 5;
//     int b=6;
//     swap(&a,&b);
//     printf("a=%d,b=%d\n",a,b); //a=6,b=5
//     return 0;
// }

// void swap(int *pa,int *pb){
//     int t = *pa;
//     *pa=*pb;
//     *pb = t;
// }




// void minmax(int a[],int len,int *max,int *min);

// int main(void){
//     int a[]={1,2,3,4,5,6,7,9};
//     int min,max;
//     minmax(a,sizeof(a)/sizeof(a[0]),&min,&max);
//     printf("min=%d,max=%d\n",min,max); //min=1,max=9
//     return 0;
// }

// void minmax(int a[],int len,int *min,int *max){
//     int i;
//     *min =*max = a[0];
//     for(i=1;i<len;i++){
//         if(a[i]<*min){
//             *min=a[i];
//         }
//         if(a[i]>*max){
//             *max=a[i];
//         }
//     }
// }




// int divide(int a,int b,int *result);
// int main(void){
//     int a=5;
//     int b=2;
//     int c;
//     if(divide(a,b,&c)){
//         printf("%d/%d=%d\n",a,b,c);
//     }
//     return 0;
// }

// int divide(int a,int b,int *result){
//     int ret=1;
//     if(b==0){
//         ret=0;
//     }else{
//         *result=a/b;
//     }
//     return ret;
// }




// void f(int *p);
// void g(int k);
// int main(void){
//     int i = 6;
//     int *p;
//     printf("&i=%p\n",&i);
//     f(&i);
//     g(i);
//     return 0;
// }

// void f(int *p){
//     printf(" p=%p\n",p);
//     printf("*p=%d\n",*p);
//     *p = 26;
// }

// void g(int k){
//     printf("k=%d\n",k);
// }


// // void minmax(int a[],int len,int *max,int *min);
// void minmax(int *a,int len,int *max,int *min);
// int main(void){
//     int a[]={1,2,3,4,5,6,7,9};
//     int min,max;
//     printf("main sizeof(a)=%lu\n",sizeof(a)); //main sizeof(a)=32
//     printf("main a=%p\n\n",a); // main a=0x7ffde416cfb0
//     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 *min,int *max){
//     void minmax(int *a,int len,int *min,int *max){
//     int i;
//      printf("minmax sizeof(a)=%lu\n",sizeof(a)); //minmax sizeof(a)=8,实际上这个a是一个指针,形参可以这么写*a
//     printf("minmax a=%p\n\n",a); // minmax a=0x7ffde416cfb0
//     a[0]=999;
//     *min =*max = a[0];
//     for(i=1;i<len;i++){
//         if(a[i]<*min){
//             *min=a[i];
//         }
//         if(a[i]>*max){
//             *max=a[i];
//         }
//     }
// }



// void minmax(int *a,int len,int *max,int *min);
// int main(void){
//     int a[]={1,2,3,4,5,6,7,9};
//     int min,max;
    
//     minmax(a,sizeof(a)/sizeof(a[0]),&min,&max);
//     int *p = &min;
//     printf("*p=%d\n",*p);
//     printf("p[0]=%d\n",p[0]);
//     printf(" p=%p\n",p);
//     printf("*a=%d\n",*a);
//     return 0;
// }

// void minmax(int *a,int len,int *min,int *max){
//     int i;
//     // a[0]=999;
//     *a=888; // a[0]===*a是等价的
//     *min =*max = a[0];
//     for(i=1;i<len;i++){
//         if(a[i]<*min){
//             *min=a[i];
//         }
//         if(a[i]>*max){
//             *max=a[i];
//         }
//     }
// }



int main(void){
    char ac[] = {0,1,2,3,4,5,6,7,8,9};
    char *p = ac;
    char *p1 = &ac[1];
    printf("p   =%p\n",p);  //p   =0x7ffea2744116
    printf("p+1 =%p\n",p+1);//p+1 =0x7ffea2744117
    printf("p1-p =%d\n",p1-p); //p1-p =1
    int ai[] = {0,1,2,3,4,5,6,7,8,9};
    int *q = &ai[0];
    int *q1 = &ai[2];
    printf("q  =%p\n",q);  //q  =0x7ffea27440e0
    printf("q+1=%p\n",q+1);//q+1=0x7ffea27440e4
    printf("q1-q =%d\n",q1-q); //q1-q =2
    return 0;
}