第六章 指標

2021-05-24 12:48:42 字數 895 閱讀 2730

1.多位元組資料的位址是在最左邊還是最右邊的位置,不同的機器有不同的規定,這也正是大端和小端的區別,位址也要遵從邊界對齊

2.高階語言的乙個特性就是通過名字而不是位址來訪問記憶體的位置,但是硬體仍然通過位址訪問記憶體位置

3.記憶體中的變數都是義序列的0或1的位,他們可以被解釋為整數或者其他,這取決於他們被使用的方式,如果使用的是整數算數指令,這個值就被解釋為整數,因此不能簡單的通過乙個值的位來判斷它的型別

4.如果我們把乙個變數宣告為某種型別,那麼當程式方位這個變數時,編譯器就會產生這種型別的指令,當採用不適當的方式訪問該變數時,編譯器就會產生錯誤或警告

5.段錯誤:對未初始化的指標進行訪問,指標進行建立後和使用前應該檢查其合法性

6.null指標:

7.*100=25 是非法的,因為100是整型,而間接訪問操作只能用於指標變數表示式

8.所有的單目運算子的優先順序都是相同的,包括++ -- *等,結合順序是從右到左的

9.指標是個左值,經過合法初始化的指標經過間接訪問操作後也是個左值

10.&ch是個右值,它的結果應該存在計算機的某個地方,但是卻無法知道該值,所以它不是乙個合法的左值

11.指標可以進行+ -的算數運算,但僅限於在同乙個陣列或者動態分配的記憶體

12.標準允許指向陣列元素的的指標與指向陣列最後乙個元素後面的記憶體位置的指標進行比較,但不允許與指向陣列第乙個元素之前的那個記憶體位置進行比較 int  values[n_values];外部變數,靜態空間儲存),int *vp;for(vp=&values[0];vp<&values[n_values];vp++)

13.任何指標之間都可以進行比較,**是它們相等或不相等,如果兩個指標都指向統一個陣列的元素,那麼他們之間還可以執行< < = > >=等關係運算,用於判斷它們在陣列中的相對位置,

14.大、小端,邊界對齊

第六章 指標(1)

int a a 10 這是c初學者很容易犯的乙個錯誤。我們定義了乙個指標變數a,它儲存的是某乙個整型變數的位址,然而,我們並沒有把該位址賦值給它,緊接著,我們將乙個常量10賦給指標變數a所儲存的位址所指向的值,然而實際上,我們並沒有給該指標變數賦值,因此,幸運的情況是系統的崩潰,嚴重的錯誤是指標變數...

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...

C和指標 第六章 指標

1.指標在進行間接訪問之前,確保已被初始化。否則,會給指標分配乙個非法位址,輕則報錯,重則在毫不相干的地方報錯 指標偶爾包含合法位址 2.為了測試乙個指標變數是否為null,你可以將它與零值進行比較 3.注意 指標變數可以作為左值使用,並不是因為它們是指標,而是因為它們是變數。間接訪問指定了乙個特定...