#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;
}