C語言 關於指標和解引用的幾個知識點

2021-08-19 09:26:58 字數 907 閱讀 7297

1.什麼是指標?

指標是程式語言中的乙個物件,利用位址,他的值直接指向存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為「指標」。指標形式由type和*決定。

2.為什麼要存在指標

存在指標是為了更方便的定位記憶體中的某個位置,利於操作。

3.下面澄清幾個名詞

指標為位址,其大小由電腦是幾位決定的。指標大小在32位平台上是4個位元組;在64位上是8個位元組。

指標變數為變數,指標相當於對變數作乙個修飾限定。

變數指標為變數的指標,這裡變數相當於乙個修飾限定,指標為主語,所以指標變數本質為指標。

4.32位電腦和64位電腦產生位址的不同

對於32位的機器,有32根位址線,假設每根位址線在定址的是產生乙個電訊號(0或者1),那麼32根位址線產生的位址會是2的32次方個位址,每個人位址標示乙個位元組,那我們就可以給4g空間進行編址。64位機器與32位原理相同,得到4g*4g的空間進行編址。

5.指標型別決定性作用

指標的型別決定了看問題是應該分配幾個位元組,同時也決定了解引用時能操作幾個位元組。如p+1,若p位int型則+1向後走4個位元組,而若p為char型+1向後走1個位元組

6.對於二級以上的指標+1都為位元組+4(因為存放的是一級指標的位址,而一級指標佔4個位元組(32位電腦))

7.關於左值和右值

做左值時使用其空間,做右值時使用其內容。

8.指標運算

通常若兩指標指向同一陣列(字串),則兩指標相減代表兩指標間的元素個數(有正負大小之分)。如若定義乙個整型陣列a[10],則a[6]-a[4]為1而a[4]-a[6]為-1。

9.標準規定

允許指向陣列元素的指標與指向陣列最後乙個元素後面的那個記憶體位置的指標比較,但是不允許與指向第乙個元素之前的那個記憶體位置的指標進行比較。

C語言 傳指標和解引用,野指標和空指標

乙個函式的改變要影響另乙個函式需要兩個條件 1 傳指標。2 解引用。通過交換a和b數值的例項來說明其重要性 在主函式中輸入a和b的值 int a 10 int b 20 預期輸出結果為a 20 b 10。明顯與預期結果不符。原因 沒有傳指標!具體操作為 也與預期結果不符。原因 沒有解引用。與預期相符...

指標的初識和解引用

讓我們來 看一下以下的 int a 10 int b 20 int p a p 10 p b p 200 p a int pp p pp a pp 1000 pp b pp 2000 看到這樣的 是不是一臉的懵逼,現在讓我們來看看他的每一句都是什麼意思。開始之前我們先了解一下指標和解引用。指標 po...

關於C語言指標陣列的幾個例項

1.用指向指標的指標的方法對5個字串排序並輸出 include include int sort char p return 1 void main sort p for i 0 i 5 i printf s p i printf n 2.用指向指標的指標的方法對n個整數排序並輸出。要求將排序的方法...