2011-05-11 57 views

回答

1

一個字符串不是空終止(結束於空),所以你可以實際存儲空字符('\ 0')在一個字符串內。您要使用的字符串不能包含其中的某個特殊字符。

下面是引用空字符微軟的字符串的定義:

http://msdn.microsoft.com/en-us/library/ms228362.aspx

+2

其實在實踐中.NET中的字符串是*雙向*長度前綴*和*空終止。在OLE自動化中也是如此; BSTR也有這個屬性。 – 2011-05-11 14:53:35

+0

@Eric Lippert - 來自微軟文檔'在C#字符串的末尾沒有空終止字符' – IAmTimCorey 2011-05-11 14:56:42

+5

從C#用戶的角度來看,沒有空終止字符;如果你有一個十個字符的字符串並要求第10個字符,那麼你不會得到空值。但作爲一個實現細節,框架實際上確實分配了額外的兩個字節,實際上確實在那裏放置了一個零字符。類似地,作爲實現細節,運行時將字符串的長度在字符數據之前存儲在內存中。你無法在C#中知道*,但是如果你看一下調試器中的原始內存,你會看到它。 – 2011-05-11 15:57:13

相關問題