資料結構學習 指標定義和使用

2021-08-10 07:45:42 字數 1106 閱讀 8794

通過指標變數訪問某記憶體單元值稱為對變數的「間接訪問」

通過變數名訪問該記憶體單元值稱為對變數的「直接訪問」

型別識別符號 * 指標變數名

①* 表示這是定義乙個指標變數

②變數名即為定義的指標變數名

③型別識別符號表示本指標變數所指向的變數的資料型別,稱為指標變數的基型別。

例如:int * p1;

表示p1是乙個指向整型變數的指標變數,通過p1可以訪問乙個整型變數。像使用其他變數一樣,可以對p1賦值,只是對p1所賦予的值只能是位址。

再如:double * p2;//p2是指向雙精度浮點型別變數的指標變數

float * p3;//p3是指向單精度浮點型別的指標變數

char * p4;//p4是指向字元型別變數的指標變數

注意:乙個指標變數只能指向同型別的變數,指標變數與其所指向的資料型別密切相關。

指標變數的賦值

①通過位址運算&賦值

float f,*p;

p=&f;

②指標變數的初始化

float f,*p=&f;//把變數f的位址賦值給指標變數p

③通過其他指標變數賦值

int i,*p1=&i,*p2;

p2=p1;

執行後指標變數p1,p2均指向同乙個位址,即均指向整型變數i。

④用null給指標變數賦空值

有關指標變數的賦值,不僅僅是上述4種,指標變數還可以指向陣列,字串,結構體,函式,檔案及呼叫標準函式等。

指標運算子 *

通過指標可以間接訪問變數的資料,指標運算子*是單目運算子,運算物件只能是指標變數或位址,可以用指標運算子來訪問相應的訪問單元中的資料

若有定義:

int x,*p;

p=&x;

說明:指標p指向x,x是p指向的物件,可以用*p來引用x,此時*p與x都代表x的值,而p與&x都代表變數x的位址

例如:x=6和*p=6等價,scanf("%d",&x)和scanf("%d",p)等價。

資料結構學習 指標與函式

函式指標傳遞引數 指標作為函式的引數 指標作為函式的返回值 指向函式的指標 指標作為函式引數 函式的引數不僅可以是整型,實型,字元型等資料,還可以是指標型別,因此可以像其他變數一樣在函式間傳遞指標變數,使用時注意,指標儲存的是乙個變數的位址,而不是變數的值。include void swap int...

資料結構學習

什麼是資料結構 對計算機記憶體中的資料的一種安排。資料結構有那些?優缺點?1.陣列 插入快 知道下標 查詢慢,刪除慢,大小固定 2.有序陣列 比無序的查詢塊,刪除和插入慢,大小固定 3.棧 吃多了吐 個人理解 4.佇列 吃多了拉 個人理解 5.鍊錶 插入快,刪除快,查詢慢 6.二叉樹 查詢 插入 刪...

資料結構學習

鍊錶 class listnode definit self,x self.val x 節點值 self.next none 後繼節點值 例項化節點 n1 listnode 4 節點head n2 listnode 5 n3 listnode 1 構建引用指向 n1.next n2 n2.next ...