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

指標與指標變數:記憶體位址、間接訪問與指標變數儲存機制

     編輯:C 語言基礎

指標是 C 語言的精華

透過指標能高效利用記憶體、描述複雜資料結構、靈活處理字符串與陣列,使程式簡潔高效。但指標對初學者較難,需結合硬體知識、多動手實作才能掌握。

變數在記憶體的配置

編譯系統根據資料類型為變數分配固定位置與大小:

變數類型位元組假設起始位址
a, bint22000, 2002
x, yfloat42004, 2008
mdouble82012
ch1, ch2char12020, 2021

記憶體按位元組編址,變數緊密排列。scanf("%d", &a) 即將資料存入位址 &a 指示的單元。

指標與指標變數

  • 指標:變數的記憶體位址,唯一指向一個變數
  • 指標變數:儲存指標(位址)的變數,實現對變數的間接訪問

關係圖解

指標變數區域          變數區域
pa = 2000  ──────►  a (位址 2000, 值 1)
pb = 2002  ──────►  b (位址 2002, 值 2)
px = 2004  ──────►  x (位址 2004, 值 3.4)
...

指標變數 pa 的值是 2000,即 a 的位址。透過 pa 可間接存取 a。

宣告與初始化


int a = 1, *pa = &a;   // 宣告整數指標並初始化
float x = 3.4, *px = &x;
char ch = 'a', *pch = &ch;

指標類型必須與所指變數類型匹配(int* 指向 int 等),否則解引用時會有型別錯誤或未定義行為。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved