我們首先看乙個例子:
using
system;
namespace
ch09ex03
struct mystruct
//////
class1
的摘要說明。
///class class1
",objecta.val);
console.writeline("objectb.val = ",objectb.val);
console.writeline("structa.val = ",structa.val);
console.writeline("structb.val = ",structb.val);}}
} 編譯執行後他的結果是這樣的:
儘管對兩種型別的變數執行了相同的操作,但結果是不同的。這是因為:
物件是引用型別
。在把物件賦給變數時,實際上是把帶有乙個指標的變數賦給了該指標所指向的物件。在實際**中,指標是記憶體中的乙個位址。在這種情況下,位址是記憶體中該物件所在的乙個位置。在把第乙個物件引用賦給型別為
myclass
的第二個變數時,實際上是複製了這個位址。這樣兩個變數就包含同乙個物件的指標。
結構是值型別
。其變數並不是包含結構的指標,而是包含結構本身。在把第乙個結構賦給型別為mystruct的第二個變數時,實際上是把第乙個結構的所有資訊複製到另乙個結構中。這個過程與簡單變數型別如int是一樣的。最終的結果是兩個結構型別變數包含不同的結構。
四 學習筆記 c語言基礎 結構體
1.在c語言中,可以使用結構體 struct 來存放一組不同型別的資料。結構體的定義形式為 struct stu結構體也是一種資料型別,它由程式設計師自己定義,可以包含多個其他型別的資料。結構體是一種自定義的資料型別,是建立變數的模板,不占用記憶體空間 結構體變數才包含了實實在在的資料,需要記憶體空...
c 學習筆記(四) 類和結構
類的預設訪問許可權是private 結構是public 該關鍵字修飾的變數可以在類的const方法中修改 class node 建議使用如下方式 正確 constref constref int ii i ii ci ii ri ii 錯誤 constref constref int ii 原因 效...
C語言程式設計 學習筆記 結構 型別定義
結構體基本 struct structname 分號不要忘了指向結構的指標 struct date myday date p myday 賦值 p month 2 更簡便的方式 p month 2 用例 指標引數 struct point getstruct struct point p int m...