指標入門(四)

2021-06-30 16:56:08 字數 901 閱讀 7927

指標與函式:函式用來運算元據,改變程式的執行狀態。指標用來根據位址訪問變數,函式名稱本身也是位址,因此你將函式和指標的結合,就能夠實現將複雜資料用指標傳遞和用指標返回,達到動態控制函式執行流的目標。

函式和指標的結構,需要通過程式棧的作用。函式和指標的結構主要有兩種方式:(1)將指標作為引數,傳遞給函式,通過函式實現資料的修改,避免複製大量的資料,提高效率。(2)使用函式指標,函式名表示本身就是函式的位址,不過函式指標還是為程式執行流提供了新的可能。

一、基本概念:

1、程式的堆疊:堆和棧不是同乙個概念,堆是heap,棧是stack,學過資料結構的同學對棧很熟悉。

兩者的共同點:都是函式的執行區域,二者共享一塊記憶體區域

兩者的不同點:(11)棧通常占用共享區域的下部,因此filo是其基本訪問特徵,棧是往上生長的;

(12)棧內容一般不會清除,但可能會被另外的棧的內容覆蓋;

(13)棧空間往往是系統管理的,無需使用者自己關心;

(21)堆通常占用共享區域的上部,因此堆上往下生長的;

(22)堆內容一般需要使用者自行清楚,否則就會成為記憶體洩漏的元凶;

(23)堆空間往往是使用者自己申請的,使用結束後需要自行進行釋放;

2棧幀的組織:函式呼叫過程中,往往借助與棧儲存呼叫函式的臨時現場,每個函式都會有乙個單元,這個單元通常被稱為棧幀。棧幀中往往存放著函式引數和區域性變數,與具體的函式是一一對應的。這也是為什麼區域性變數可以重名,名稱雖然一樣,但是不是在一塊區域,依然可以保證位址不同。

棧幀的內容組織:(1)呼叫函式的返回位址,這是程式能夠呼叫函式後正確返回的關鍵

(2)函式的返回值:被呼叫函式如果有返回值,也需要預留返回值的儲存空間

(3)區域性資料儲存:區域性變數的記憶體空間

(4)引數儲存:為函式引數預留的空間

(5)棧指標和基指標:執行系統用來管理棧的指標

Delphi 指標 入門

指標,是乙個無符號整數 unsigned int 它是乙個以當前系統定址範圍為取值範圍的整數。指標對應著乙個資料在記憶體中的位址,得到了指標就可以自由地修改該資料。指標的指標就是用來存放指標所在的記憶體位址的。取址運算子 指標的引用解析操作符 1,型別指標的定義。對於指向特定型別的指標 varptr...

指標的入門

指標是 學懂c語言最關鍵的部分之一。首先我們先來了解一下指標到底是什麼吧?指標大小在32位平台下是4個byte,其值為某乙個記憶體的位址。每個位址表示乙個位元組 這裡我們用一段 來說明 define crt secure no warnings 1 include include int main ...

c 指標入門

什麼是指標?其實指標就像是其它變數一樣,所不同的是一般的變數包含的是實際的真實的資料,而指標是乙個指示器,它告訴程式在記憶體的哪塊區域可以找到資料。這是乙個非常重要的概念,有很多程式和演算法都是圍繞指標而設計的,如鍊表。開始學習 如何定義乙個指標呢?就像你定義乙個其它變數一樣,只不過你要在指標名字前...