標籤:
指標和指標數組
1 #include<stdio.h> 2 3 int main() { 4 5 int a = 100 , b = 200 ; 6 int *p1 = &a , *p2 = &b ; 7 8 printf("%d,%d\n",a ,b); 9 printf("%d,%d\n",*p1,*p2);10 printf("%x,%x\n",&a,&b);11 printf("%x,%x\n",p1,p2);12 13 *p1 = *p1 * 3;14 printf("%d\n",a);15 printf("%d\n\n",*p1);16 17 p1 = &b;18 printf("%x\n",p1);19 printf("%x\n",p2);20 21 return 0;22 23 24 }
指標數組
1 #include<stdio.h> 2 3 // 不同方式輸出數組 4 int main(){ 5 int a[10] , i , *p=NULL; 6 7 for( i = 0 ; i < 10 ; i++){ 8 a[i] = i; 9 }10 11 for(i = 0 ; i < 10 ; i++){12 printf("%d ",a[i]);13 }14 printf("\n");15 16 for(i = 0 ; i < 10 ; i++){17 printf("%d ",*(a+i));18 }19 printf("\n");20 21 for(p = a ; p < a+10 ;){22 printf("%d ",*p++);23 }24 printf("\n");25 26 return 0;27 }28 ~
* ,++ ,--優先順序相同
*p++:先取得當前p所指向得變數值,再使p指向後一個變數。相當於 a[i++]
*p--:先取得當前p所指向得變數,再使p指向前一個變數,相當於a[i--]
*++p:先使指向後一個變數,再取p所指向得變數得值,相當於a[++i]
*--p :先使得p指向前一個變數,再取p所指向得變數得值,相當於 a[--i]
數組元素也可以是指標類型:這種數組稱為指標數組,也就是說指標數組得每個元素都是指標變數。
1 int *p[5];
* 運算子得優先順序低於 [ ]
p先與5結合,顯然他是一個數組,再與*結合表示數組元素類型全是指標。
這裡的p是一個二級指標。
Linux C 程式(NIGH)