結構體(類)中的匿名欄位的型別,也可以是指標。
例如:
輸出結果:
輸出了結構體的地址。如果要取值,可以進行如下操作:
在定義物件s時,完成初始化,然後透過”.”的操作完成成員的操作。
但是,注意以下的寫法是錯誤的:
大家可以思考一下,以上程式碼為什麼會出錯?
會出錯,錯誤資訊如下:
invalid memory address or nil pointer dereference
翻譯成中文:無效的記憶體地址或nil指標引用
意思是*Person沒有指向任何的記憶體地址,那麼其預設值為nil.
也就是指標型別匿名欄位*Person沒有指向任何一個結構體,所以物件s也就無法操作Person中的成員。
具體的解決辦法如下:
new( )的作用是分配空間,new()函式的引數是一個型別,這裡為Person結構體型別,返回值為指標型別,所以賦值給*Person,
這樣*Person也就指向了結構體Person的記憶體
最新評論