C 中的字串型別 String類

2021-08-25 13:05:24 字數 1023 閱讀 6056

字串是程式常用的資料型別,它是一種引用型別。雖然c#是嚴格區分大小寫的,但是string和string在c#是一樣的。string相當於string在c#中的別名,在c#中它們是完全相同的。

string 是字串型別,它是個特殊的引用型別,所以string物件儲存在堆上,一切都是那麼的平常;然而,不平常的出現了:

class class1

static void main() }

輸出的結果是 "123"

string 到底是值型別還是引用型別? 如果是引用型別的話.輸出的結果應該是: "hellow"

如果是值型別,結果倒還說的過去。但是string 是引用型別啊,這是怎麼回事??

這是因為string物件是不可變的,什麼是不可變?

一旦初始化字元創型別變數,那麼它裡面的內容就固定下來,所有對它的修改(包括修改內容和拼接),將重新產生乙個新的字串物件,原來的字串物件不變。看來似乎修改了string物件的方法實際上是返回乙個包含修改內容的新string物件。

我們看下面的例子:

string a="i am a";//在堆上為字串a分配記憶體,並初始化

string b=a; //宣告b,與a指向同一記憶體空間

system.console.writeline("a is"+a);

system.console.writeline("b is"+b);

a="i am aa"; //改變a中的值

system.console.writeline("a is now"+a);

system.console.writeline("b is now"+b);

結果:a is i am a

b is i am a

a is now i am aa

b is now i am a

可以看出,a和b雖然指向同一記憶體空間,但a的改變,並不會影響到b,a改變時,它變成了乙個全新的物件,b還是指向原來的物件空間。

結論:雖然字串屬於引用型別,但是它並不像引用型別那樣工作,表面上更像乙個值型別。

C 中的字串類(string類)

1.字串搜尋 string s abc科學 int i s.indexof 科 注意 1 索引從0開始,如果沒有找到則返回值為 1 2 c 中,ascii和漢字都是用2位元組表示 2.字串比較 string s1 abc string s2 abc int n string.compare s1,s...

String字串型別

strlen key 擷取key值的長度 incr key 每執行一次值加1 decr key 每執行一次值減1 incrby key 步長 每執行一次值加 步長 decrby key 步長 每執行一次值減 步長 getrange key start end 擷取key值從幾到幾的字串 第乙個字串預...

C 基礎 String(字串)型別

字串型別是開發過程中使用頻率較高的資料型別之一,用於儲存一組字元。一 字串 1 字串的不可變性 當你給乙個字串重新賦值之後,老值並沒有銷毀,而是重新開闢一塊空間儲存新值。當程式結束後,gc掃瞄整個記憶體,如果發現有的空間沒有被指向,則立即把它銷毀。2 我們可以將字串看做是char型別的乙個唯讀陣列。...