首頁>Club>
感覺好難啊!有誰知道?
15
回覆列表
  • 1 # 一分鐘說軟體

    我用C語言開發已有十幾年了,經常看到有新手搞不清楚指標和陣列。

    陣列

    首先說陣列,宣告一個數組後,它是有記憶體的,比如char a[10],那麼,陣列a就有10個位元組的記憶體。

    所以,你可以用下標來使用它,只要下標不超過10 - 1,都不會出錯。

    指標

    如果把陣列看作是一串粘在一起的盒子,指標則是一個掛鉤。只有掛鉤鉤上一塊記憶體時,你才可以用它。比如宣告一個指標p:char *p;,此時,你還沒法用它,只有p鉤上一塊記憶體後,即賦值後,才可以用。比如p = a; 或p = &a[0];。

    注意

    指標本身也是有記憶體的,比如int b;,b佔4個位元組,那麼char *p;,p的型別為char *,所以p本身也佔4個位元組。也可以取它的地址,即二級指標:char **pp = &p;。

    陣列本身也可以看作一個指標指向一塊記憶體,而指標就是陣列名。比如上面的a。可以把a賦值給p:p = a;。更常用的是在函式呼叫時。比如有一個排序函式:qsort(char *p, int n);,它需要一個數組和陣列的元素數作為引數,可以這樣呼叫:qsort(a, 10);

  • 中秋節和大豐收的關聯?
  • 日界線穿過的唯一一個大陸是哪裡?