//讀取電腦中文字文件的內容,並將其中超過8個字的書名從第六個索引開始用省略號表示,+|作者
string path = @"g:\桌面\book.txt"
;string[
] text = file.
readalllines
(path, encoding.default)
;//讀取檔案
for(
int i =
0; i < text.length ; i++
),stringsplitoptions.removeemptyentries )
;//清除空格,放置在乙個陣列
if(str[0]
.length >8)
else
}
static
void
main
(string[
] args)
,",p1.age, p1.gender)
; console.
writeline
(","
,p2.age,p2.gender )
; console.
readkey()
;}public struct person//為結構時,輸出結果為20,男;為類時,輸出結果為100,女;
set
} private char _gender;
public char gender
set
} private int _age;
public int age
set
}}
結構(struct)
類(class)
棧、堆值型別的值在棧上
引用型別棧上存位址,堆上存值
建構函式
預設有乙個無參的建構函式,在結構中在寫乙個有引數的建構函式,這時,結構上有兩個建構函式,乙個有參乙個無參
預設有乙個無參的建構函式,這時,在類中寫乙個有引數的建構函式,預設的無參建構函式就沒有了
建構函式中引數個數
在結構中寫建構函式所有欄位都要寫全
在類中寫構造函式引數列表中引數個數可以不確定
是否可為null值
值型別不可為null值
引用型別可為null值
舉例分類
int,long,float,char,bool,enum,struct
system.object,string,class,inte***ce,int,string
棧(stack)
堆(heap)
分配記憶體空間
棧是編譯期間就分配好的記憶體空間,**中必須對棧的大小有明確定義
堆是程式執行期間動 態分配的記憶體空間,可以根據程式運**況確定要分配的堆記憶體的大小
申請方式
由系統自動分配。 例如,宣告在函式中乙個區域性變數 int a; 系統自動在棧中為a開闢空間
需要程式設計師自己申請,並指明大小
C 堆和棧區別
c 中,記憶體分為5個區 堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區。棧 是由編譯器在需要時自動分配,不需要時自動清除的變數儲存區。通常存放區域性變數 函式引數等。堆 是由new分配的記憶體塊,由程式設計師釋放 編譯器不管 一般乙個new與乙個delete對應,乙個new與乙個delete對...
堆和棧區別
一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其 操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os回 收 注意它...
堆和棧區別
管理方式 棧由編譯器自動管理 堆由程式設計師控制,使用方便,但易產生記憶體洩露。生長方向 棧向低位址擴充套件 即 向下生長 是連續的記憶體區域 堆向高位址擴充套件 即 向上生長 是不連續的記憶體區域。這是由於系統用鍊錶來儲存空閒記憶體位址,自然不連續,而鍊錶從低位址向高位址遍歷。空間大小 棧頂位址和...