首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C語言指標基礎:定義、位址運算子與間接存取

     編輯:C 語言基礎

指標核心概念

指標是儲存「另一個變數位址」的變數。&x 取得變數 x 的位址,其型別為「指向 x 型別的指標」。例如 int *ip 宣告一個指向 int 的指標變數 ip。

指標變數定義與初始化

int i, *ip = &i;  // ip 指向 i
int *p1, *p2;       // 兩個指向 int 的指標
  • * 在宣告中表示「這是指標」
  • 基礎型別(int、double 等)指定指標指向的資料型別
  • 未初始化的靜態/外部指標自動設為 NULL(值為 0)

指標引用與間接存取

int i = 200, x;
int *ip = &i;
x = *ip;   // *ip 存取 ip 所指位址的值,等同 x = i

* 為間接存取運算子(解參考)。透過指標存取比直接存取稍慢,但提供靈活性:同一指標可在執行期指向不同變數。

指標指向的改變

int i = 'a', j = 'b';
int *p1 = &i, *p2 = &j;
p2 = p1;        // p2 現在也指向 i
*p2 = *p1;      // 將 p1 指向的值複製到 p2 指向的位置(此處等同 j = i)

區分 p2 = p1(改變指標指向)與 *p2 = *p1(複製資料)的差異。

指標運算式範例

int x, y, *px = &x;
y = *px + 5;      // x + 5 → y
y = ++*px;        // x 加 1 後存入 y
y = *px++;        // 先取值再遞增指標(相當於 y = *px; px++)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved