1.地址变量的初始化
int a=4;
int *p=&a; //p=0xff1
在定义这个变量的时候,*表明这个变量是一个地址变量,int表示将来这个地址变量存储的是某个整数的地址。
*p=8;
//在使用地址变量的时候加*,表示取指定地址的存储单元。
printf("a的地址=%p\n",a);
printf("p的值=%p\n",p);
printf("p变量本身的地址")
//数组名就是首元素的地址
// arr+i:实际上是加上sizeof(int)*i个字节
访问第i个元素的地址:&arrp[i]=====arr+i
访问第i个元素的值:arr[i]=======*(arr+i)
int *p=arr//int *p=&arr[0]
//只要arr能用的地方,p都能用
/*请你用指针实现两个数的交换*/
int a=1,b=3;
int *p1=&a;
int *p2=&b;
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
printf("a=%d,b=%d\n",a,b)
总结:数组名就是首元素的地址
访问第i个元素的地址:&arr[i]====arr+i
访问第i个元素的值:arr[i]====*(arr+i)
只要arr能用的地方,p都能用