關於C語言的指針(1)定義

關於C語言的指針(1):

指針變量與間接訪問:

指針變量是與儲存地址的儲存單元綁定的變量,其的數值是儲存單元的地址,間接訪問過程是指通過指針變量的數值獲取指針變量的值所指的儲存單元的內容的過程,間接訪問過程需要兩次儲存器訪問操作:第一次是訪問與指針變量綁定的儲存單元獲取指針變量的數值,之神變量的值是另一個儲存單元的地址,第二次是一之神變量的十位地址,訪問指針變量的數值所指向的儲存單元,獲取指針變量的值所指向的儲存單元的內容。

指針的含義

在間接訪問的過程中,僅僅根據地址變量P1綁定的儲存單元的內容是無法實現間接訪問的,因爲與地址變量P1把規定的儲存單元的內容只是儲存單元地址,用於唯一識別存儲器中的某個存儲單元,而是實現間接訪問,需要確定抵制標識的存儲單元內容所表示的數據類型,只有確定地址標識的儲存單元內容所表示的數據類型,蔡鍔能確定表示該類型數據的二進制數的數位,並因此確定存儲給類型數據所需要的存儲空間單元數,同時確定該類型數據的二進制數表示方式,故需要確定一下信息:

  • 存儲該數據的一組存儲單元的起始地址
  • 存儲該數據的存儲單元數量
  • 該數據的二進制表示方式
    將實現間接訪問過程所需要的信息組合成爲指針,因此指針具有雙重屬性,即數值和類型。指針的數值是存儲單元地址,用於確定存儲數據的一組存儲單元的起始地址。指針的類型用於確定儲存在指針的數值所表示的儲存單元中的數據的類型,並因此去欸的那個存儲該類型的數據所需要的存儲單元數量和改了剋型數據的二進制數表示方式,通過指針間接方位到的數據成爲指針指向的數據。

指針變量

用於存儲指針的變量成爲指針變量,指針變量的數值是從年初單元的地址,指針變量的類型用於確定存儲在指針變量的數值所表示的存儲單元中的數據的類型,一般情況下,指針之恩那個付給與其相同的指針變量,指針變量的地址是於指針變量綁定的一組存儲單元中第一個存儲單元的地址。制定集成開發環境後,存儲單元地址的二進制數位數是固定的,英雌各種類型的指針變量的長度是相同的,通過存儲在指針變量中的指針間接訪問到的數據成爲指針變量指向的數據。

直接訪問

通過對變量賦值可以直接將表示數據的二進制數字寫入與變量綁定的存儲單元各種,或者通過應用便亮度處於變量綁定的存儲單元的內容,直接設置參數就可以賦值,參數對應的存儲單元的內容就變爲數值的二進制碼,之後可以使用設定的參數名稱就能調用其中的參數。

間接訪問

間接訪問以與指針變量綁定的存儲單元的內容爲地址對存儲單元進行讀寫,如果與指針變量A綁定的存儲單元內容是變量B的地址,就對指針變量A的間接訪問過程就是對與變量B綁定的存儲單元的讀寫。
間接訪問的變量名稱前面有*。
如果指針變量A的數值shibianliangB的地址,對指針變量A二間接訪問過程等同於直接方位B的過程。

定義和應用方法

定義方法

指針變量的定義格式爲:
類型 *指針變量名稱;
類型用於確定指針變量之鄉的儲存單元各種數據的類型,*表示定義的是指針變量,指針變量名的取名規則類似於變量名的取名規則,

賦值方法和取運算地址符

已知GCC支持的C89標準中可以對指針變量賦值任何能夠用32位二進制數表示的無符號數
若果不能直接用32位無符號數對指針變量賦值,一是由於多個程序同時存儲在存儲器中,導致程序執行錯誤。二是高級語言用變量應用和複製取代存儲單元讀寫的目的就是是計算機存儲器結構和存儲器分配過程對高級語言程序設計是透明的,因此,在C語言程序設計中必須避免直接對用地至指定的存儲單元進行讀寫,只能通過變量引用和賦值讀寫綁定的存儲單元。
當計算機對變量分配存儲單元,將與變量綁定的存儲單元的地址作爲便利啊屬性,可以通過取地址運算符提取變量的地址屬性。
而取址地址符爲&,用於提取變量的地址屬性,指針變量的類型需要與提取地址屬性的變量的類型一直,就是int類型的變量提取的地址屬性需要賦值給類型爲int的指針變量。

應用方法

直接訪問:

引用指針變量的值,或者對之陣壁那輛複製,指針變量的直接訪問過程與整形變量、浮點型變量、等的直接訪問過程相同,只是指針變量的值是地址,應用指針變量需要到地址,改地址是改變各變量綁定的存儲單元的地址。

間接訪問

間接訪問是對一指針變量的數值爲地址的儲存單元進行的讀寫操作,入宮指針變量的值是於某個變量綁定過的的存儲單元的地址,對該指針變量的間接訪問過曾等同於對該變量的直接訪問過程,當然調用之前需要完成定義。

int *p1,*p2,i;
pi=&i;
作用等於
**p1=100;
i=100;

其中是間接運算符號,表示間接引用或者複製指針變量指向的存儲單元,如果執行了賦值語句怕=100;變量i的值就是100,如果執行了賦值語句i=100;間接引用指針變量p1得到的值就是100,即*p1的值爲100。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章