回覆列表
  • 1 # 頭尾某

    指向一維陣列的指標:int a[10] , a 是一維陣列的指標指向陣列的指標變數:int a[10] ; int *p = a; p 指向陣列的指標變數。相同:都能訪問陣列的元素,如 a[i] 和 p[i], *(p+i) 等價。區別1: a 是一個指標常量,不能改變它的值。 如 int a[10]; int b[10]; a=b; // 試圖改變一個常量的值,非法操作! p 是一個指標變數量,能改變它的值。 如 int a[10]; int *p = a; int b[10]; *p = b; // 試圖改變一個變數的值,合法操作! 區別2: int a[10]; int *p = a; printf("%d %d",sizeof(a),sizeof(p)); // 輸出 40 , 4 用 sizeof 計算指標的大小時, 如果是指標常量,結果是這個指標常量指向的區域的大小。如 a.由 10 int 元素, 佔用 4 * 10=40 個位元組。 如果是指標變數量,結果是這個指標變數本身的大小。指標變數一般佔用 4 個位元組。

  • 中秋節和大豐收的關聯?
  • 降低崗位等級處分帶來什麼樣的後果?