在技術學位中,有些概念和科目通常會讓學生感到害怕,一些主要的例子是與物件導向程式設計和微積分相關的科目,另一個例子是一些更基本的抽象概念諸如指標之類的函數,主要在C 語言中,這是本文的主題。
與我們不同,計算機不透過「標籤」或「名稱」來了解某些訊息,而是透過該資料在記憶體中的位置來了解某些資訊。我們可以將記憶體視為一組“單元”,其中包含許多儲存0 或1 的位,每個單元都與儲存一些資訊的某個位址相關聯,以便機器執行的程式可以存取這些資料並進行操作它。 。
請記住,程式要能夠使用數據,就需要知道其在記憶體中的位址,我們可以設想指標的概念。指標是一個「指向」其他資料的變量,就好像它是記憶體中的一個空間,用於儲存另一個變數或資訊的位址,以便可以對其進行操作。
但現在問題來了,指針有什麼用呢?指標允許進行一些涉及記憶體的更複雜的操作,例如使用 Malloc 進行動態分配或建立更複雜的資料結構等。此外,還有一些細節一開始學生不太容易注意到,例如向量的名稱是指標。沒錯,向量無非是一個“固定指標”,指向記憶體中的某個位置,我們可以根據需要使用索引進行操作。
另一種用途是透過引用操作數據,例如:將數組作為參數傳遞給另一個函數,允許修改原始數組,而不是傳遞的值或物件只是一個副本,例如,在Javascript 中發生的情況不存在指標的概念(至少不明確),例如:
#includeint vet [5] ={10,20,3,4}; void somadez(int * ref){ for(int i=0;i 指標的另一個不太明顯的用途,這次是物件導向的語言,例如,我們可以創建動態物件並促進繼承和多態性的工作。
以下是 C 的範例:
#includeusing namespace std; class Animal{ public: virtual void som(); }; class Cachorro : public Animal{ public: void som(){ cout som(); //neste caso podemos usar o ponteiro para acessar métodos e atributos de uma classe derivada. return 0; }
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3