結構體變數和指向結構體變數的指標

2021-10-25 10:34:17 字數 1333 閱讀 6986

目錄概念

記憶體分配

物件的引用

結構體變數和結構體指標變數作形參的區別

以結構體變數和結構體指標變數形參的函式呼叫

結構體變數是指將不同的資料型別整合成乙個有機的整體,以便於呼叫。

struct student

student stud1;//stud1就是結構體變數

結構體指標變數是指指向結構體變數的指標或者指向結構體陣列的指標。

student *stud2;//結構體指標變數
在c語言中都是使用庫函式malloc和free來分配和撤銷記憶體空間的。c++中提供了較簡便而功能較強的運算子new和delete來取代函式malloc和free函式。注意:new和delete是運算子,不是函式。

int main

結構體變數引用成員變數的方式是:

結構體變數名.成員變數名
指標引用結構體變數成員的方式是:

(*指標變數名).成員變數名 //*指標變數名 兩邊的括號不可以省略

指標變數名->成員名 //->」是「指向結構體成員運算子」,它的優先順序同結構體成員運算子「.」一樣高。

結構體變數作為函式形參。此時sc_para和tm_para傳遞的是兩個結構體變數,包含其內部所有的成員變數,占用的記憶體空間自然而然就大,具體大小取決於結構體變數的大小。

int ref_struct_param(

sc_params sc_para,

tm_params tm_para

) //sc_params和tm_params是兩個結構體型別

結構體指標變數作為函式形參。此時*sc_para和*tm_para傳遞的是兩個指標變數,乙個指標只占用四個位元組空間,而且儲存的是結構體變數的首位址。修改為指標後速度變快,佔的記憶體空間也減小。

int ref_pointer_param(

sc_params* sc_para,

tm_params* tm_para

) //sc_params和tm_params是兩個結構體型別

以結構體變數作形參的函式的呼叫,函式形參部分直接呼叫定義的結構體名即可。

int main

以結構體指標變數作形參的函式的呼叫,函式形參位置要引用結構體位址。

int main

結構體陣列指向結構體變數的指標

一 結構體陣列的定義 struct student stu 3 陣列各元素在記憶體中連續存放 二 結構體陣列的初始化 struct student stu 3 struct student stu 輸入10個學生的姓名 學號和成績,將其中不及格者的姓名 學號和成績輸出 p163.17 struct ...

指向結構體變數的指標。

這兩天調程式,在指向結構體變數指標這一塊還有 運算子搞得不是很明白,下面是那段程式仔細研究一下。typedef struct usb down packet 下傳的資料報結構,用於命令 寫資料 u uint8 mlength 下面的緩衝區的長度,讀寫操作的位元組數 uint8 mbuffer max...

指向結構體變數的指標

定義 結構體變數的指標就是該變來那個所佔據的記憶體段的起始位址。可以設乙個指標變數,來指向乙個結構體變數,此時該指標變數的值是結構體變數的起始位址。設p是指向結構體變數的陣列,則可以通過以下的方式,呼叫指向的那個結構體中的成員 1 結構體變數.成員名。如,stu.num。2 p 成員名。如,p nu...