定義結構體型別時用結構體自身型別或指標定義內部成員

2021-09-28 23:13:36 字數 612 閱讀 9338

定義自身型別的成員是不可以的

定義結構體時,是不可以定義自身型別的成員的。這是因為結構體中各個成員所需的儲存空間大小是編譯階段確定的,當用該結構體定義自身成員時,由於結構體大小還不確定,因此此時定義的陳冠所需要的儲存空間大小也就不確定,因此編譯會報錯;

定義自身型別的指標成員是可以的

但是可以定義該結構體型別的指標,因為指標在固定的平台上所佔的記憶體大小是確定的!

定義成員函式時,結構體型別做函式引數型別是可以的

函式引數在執行時才會壓棧,因此編譯是沒有問題的;執行時,結構體型別已經是定義好的,因此也不會有問題。

定義成員函式時,結構體指標做函式引數型別是可以的

指標做函式引數,沒有問題;

比如:

typedef

struct struct_exp

struct_exp_t;

注意:

上面例子在說明定義自身型別成員以及指標時,用的是struct struct_exp,而不是struct_exp_t

Go 結構體,定義結構體型別,struct

demo.go 定義結構體型別 package main import fmt 定義結構體型別 在函式外部定義 全域性的 可以在整個專案中使用 type student struct func main 按結構體定義時的成員順序進行顯示。定義結構體變數並賦值 第二種方式 var stu2 stude...

結構體型別 結構體變數 結構體陣列 結構體指標

問題1 一元錢換為1 2 5分的硬幣,有多少種兌換方?本題要點分析及參 對各種可能情況進行一一測試。這是實現迴圈的一種方式 窮舉法 但實際上只有只有餘額才能兌換成其它面值的硬幣 main 注意換行的控制和每列的對齊 問題3 某鐵路線上有10個站,需要準備多少種客票?main b a 0 p prin...

使用類 結構體時關於ZeroMomery用法錯誤

今天同事在寫了如下結構體 1 typedef struct taginfo 2 info,pinfo 67 typedef std mapmap info 8 typedef std map iterator map info it 在使用該結構體時 pinfo pinfo new info zer...