將所有字元的總數最後再加1,因為字串最後會有個"\0",這是系統自動加上的。由於字元佔的記憶體單元數為1byte,所以這樣計算。如果有漢字,就要對應漢字乘以2,因為漢字佔2個位元組。
char型字元構成的字串。
如:"Hello12345",共10個字元,但是因為最後還有一個隱含的"\0"用來標誌結尾,所以共佔11個位元組。PC機中,1個位元組(Byte,簡寫B)中含8bit,所謂bit就是可以儲存0或者1的基本儲存單元。
擴充套件資料:
一種常用的表示法是使用一個字元程式碼的陣列,每個字元佔用一個位元組(如在ASCII程式碼中)或兩個位元組(如在unicode中)。它的長度可以使用一個結束符(一般是NUL,ASCII程式碼是0,在C程式語言中使用這種方法)。或者在前面加入一個整數值來表示它的長度(在Pascal語言中使用這種方法)。
這是一個用NUL結束的字串的例子,它用10個byte儲存,用ASCII表示法:
F R A N K NUL k e f w;46 52 41 4E 4B 00 6B 66 66 77
上面的字串的長度為5個字元,但注意它佔用6個位元組。結束符後的字元沒有任何意義。
這是相同的Pascal字串:
length F R A N K k e f w;05 46 52 41 4E 4B 6B 66 66 77
將所有字元的總數最後再加1,因為字串最後會有個"\0",這是系統自動加上的。由於字元佔的記憶體單元數為1byte,所以這樣計算。如果有漢字,就要對應漢字乘以2,因為漢字佔2個位元組。
char型字元構成的字串。
如:"Hello12345",共10個字元,但是因為最後還有一個隱含的"\0"用來標誌結尾,所以共佔11個位元組。PC機中,1個位元組(Byte,簡寫B)中含8bit,所謂bit就是可以儲存0或者1的基本儲存單元。
擴充套件資料:
一種常用的表示法是使用一個字元程式碼的陣列,每個字元佔用一個位元組(如在ASCII程式碼中)或兩個位元組(如在unicode中)。它的長度可以使用一個結束符(一般是NUL,ASCII程式碼是0,在C程式語言中使用這種方法)。或者在前面加入一個整數值來表示它的長度(在Pascal語言中使用這種方法)。
這是一個用NUL結束的字串的例子,它用10個byte儲存,用ASCII表示法:
F R A N K NUL k e f w;46 52 41 4E 4B 00 6B 66 66 77
上面的字串的長度為5個字元,但注意它佔用6個位元組。結束符後的字元沒有任何意義。
這是相同的Pascal字串:
length F R A N K k e f w;05 46 52 41 4E 4B 6B 66 66 77