街道 X 有 1024 棟房子,編號 X[0~1023],每棟存一個整數。房子編號即指針——值為其他內存對象地址的數據類型。
換言之:指針 = 內存地址的抽象。凡能通過某方式訪問內存對象,該方式即指針。如電話號碼找人(電話本是指針變量)、GPS 坐標找人(GPS 是指針變量)。
int *p; 未確定值時必須初始化為 NULL:
#define NULL ((void*)0)。
Debug 下未初始化指針為 0xCCCCCCCC,Release 下為隨機垃圾值,極危險。
int *p → 該地址按 int 解析;float *q → 按 float 解析。a = 123;int *p = &b; *p = 5; 等價於 b = 5;
#include <stdio.h>
void main() {
int a, b;
int *p;
p = &b;
a = 3; // 直接引用
*p = 5; // 間接引用 b
}
go(123)),但運行時常量不佔數據區,佔代碼區。