1.地址變量的初始化
?int a=4;
?int *p=&a; ? //p=0xff1
在定義這個(gè)變量的時(shí)候,*表明這個(gè)變量是一個(gè)地址變量,int表示將來這個(gè)地址變量存儲(chǔ)的是某個(gè)整數(shù)的地址。
?*p=8;
?//在使用地址變量的時(shí)候加*,表示取指定地址的存儲(chǔ)單元。
?printf("a的地址=%p\n",a);
?printf("p的值=%p\n",p);
?printf("p變量本身的地址")
?//數(shù)組名就是首元素的地址
// arr+i:實(shí)際上是加上sizeof(int)*i個(gè)字節(jié)
?訪問第i個(gè)元素的地址:&arrp[i]=====arr+i
?訪問第i個(gè)元素的值:arr[i]=======*(arr+i)
int *p=arr//int *p=&arr[0]
//只要arr能用的地方,p都能用
/*請(qǐng)你用指針實(shí)現(xiàn)兩個(gè)數(shù)的交換*/
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)
總結(jié):數(shù)組名就是首元素的地址
? ? ? ? ? ?訪問第i個(gè)元素的地址:&arr[i]====arr+i
? ? ? ? ? ?訪問第i個(gè)元素的值:arr[i]====*(arr+i)
? ? ? ? ? ?只要arr能用的地方,p都能用