結構體指標主講內容

2021-06-22 23:39:53 字數 971 閱讀 1820

結構體指標

指標當做函式引數

陣列當做函式引數

1.結構體指標

指向結構體變數的指標.稱為結構體指標

student stu =;

student *p = &stu;

student  * 結構體指標型別(型別), p結構體指標變數(變數名);

&stu 結構體變數位址(初值)

(*p).*** = 『m』;

p->***= 』m』;

(*p)對指標取值後是結構體變數,.***是訪問成員變數

使用指標可以指向操作符直接訪問結構體成員p->***

1.結構體指標

結構體指標變數儲存的是結構體變數的首位址其本質是結構體第乙個成員變數的位址

可以通過結構體指標變數加指向操作符的形式來訪問每乙個成員變數

對於結構體而言,定義的結構體所佔的位元組數,不僅與其成員的資料型別有關,也與成員順序有關,順序不同所佔的空間大小也可能不同.

對於指標變數而言,自增運算;指標每一次偏移乙個對應資料型別所佔的位元組數,取內容運算子操作時,也是根據指標變數所儲存的位址和指標變數的資料型別來決定從什麼位址開始到多少個位元組結束,這個記憶體範圍內的資料。也是指標變數本質是儲存乙個儲存區域的首位址的原因。結構體陣列的陣列名是乙個結構體指標常量。

結構體內包含指標

在定義結構體的時候,可以使用指標變數作為結構體成員,但是一定要防止結構體型別的變數在定義時,與指標變數所對應的資料是常量,如果是常量,則對其修改時會崩潰。

2.指標當作函式引數

指標可以當作函式引數

包括:一般指標作為函式引數,陣列當作函式引數,結構體指標當作函式引數

傳值和傳址

所謂傳值就是把實參的值傳遞給形參。

所謂傳址,我們有時候需要改變實參的值,這時就需要傳位址。

把位址當做函式引數傳入函式。

3.陣列當做函式引數

陣列當作函式引數,形參僅代表陣列的首位址,我們需要傳入陣列元素個數。

結構體指標中包含結構體指標

將c 轉化為c的過程中,一些c 的特性無法使用 類內私有變數在類內公共函式中使用,轉化為c的時候選擇用malloc的方式,申請一段記憶體空間去儲存它,在函式中傳指標形參去操作這些變數。這時候遇到乙個問題,結構體中包含了另乙個結構體的指標,這導致了我malloc的時候,另乙個結構體中的記憶體空間沒有申...

結構體指標

定義結構體 typedef struct str stu t 建立結構體指標,存放某乙個結構體變數的首位址 stu t p2stu null 重新命名結構體指標名 typedef將使得原來申明的結構體變數成為資料型別 typedef stu t p2stu t 建立結構體指標,存放某乙個結構體變數的...

結構體指標

指向結構體型別變數的使用 首先讓我們定義結構體 struct stu 再定義指向結構體型別變數的指標變數 struct stu p1,p2 定義指標變數p 1 p 2,分別指向結構體型別變數。引用形式為 指標變數 成員 例7 2 對指向結構體型別變數的正確使用。輸入乙個結構體型別變數的成員,並輸出。...