C與指標 第六章 指標

新南南南發表於2020-12-07

C 與指標 第六章 指標

6.1 記憶體和地址

記憶體看作房子 指標就是門牌
記憶體中的每個位置由一個獨一無二的地址標識
記憶體中的每個位置都包含一個值
硬體可以通過地址訪問記憶體位置

6.2 值和型別

int  a = 112, b = -1;
float c = 3.14;
int *d = &a;
float *e = &c;

a 和b用於儲存整型值 c用於儲存浮點值

6.3 指標變數的內容

6.4 間接訪問操作符

通過一個指標訪問它所指向的地址的過程北稱作是間接訪問 或者是解指標。單目操作符 *

6.5 未初始化和非法的指標

int *a;
*a = 12;
建立一個叫做a的指標變數 把12儲存在a所指向的記憶體位置;
但是因為沒有對這個變數進行初始化 我們不能預測這個值將會指向什麼地方 就怕是一個非法地址

6.6 NULL指標

作為一個特殊的指標變數 並不指向任何東西 要是一個指標變數為NULL 可以給其賦值 0 為了測試指標變數是否是NULL 可以與零值直接進行比較

6.7 指標 間接訪問和左值

int a;
int *d = &a;

6.8 指標 間接訪問和變數

*&a = 25;

6.9 指標常量

6.10 指標的指標

int a = 12;
int *b = &a;
int **c = &b;

首先一個整型記憶體a分配一個變數12;
然後用一個指標b存著a的記憶體地址
然後用一個指標c存著b的記憶體地址
*操作符具有從右向左的結合性
*(*c)其實就是由裡到外逐層求值

6.11 指標表示式

char ch = ‘a’;
char *cp = &ch;

相關文章