在計算機編程中,字符串傳統上是壹系列字符,可以是文字常量,也可以是變量。後者可能允許其元素變異並改變長度,也可能是固定的(創建後)。字符串通常被視為壹種數據類型,通常被實現為字節(或字)的數組數據結構。它使用某種字符編碼來存儲壹系列元素,通常是字符。
字符串也可以表示更壹般的數組或其他序列(或列表)數據類型和結構。根據使用的編程語言和確切的數據類型,聲明為字符串的變量可能會導致內存中的存儲被靜態分配到預定的最大長度,或者被動態分配以允許它保存可變數量的元素。
當壹個字符串出現在源代碼中時,它被稱為字符串文字或匿名字符串。在數學邏輯和理論計算機科學中使用的形式語言中,字符串是從稱為字母表的集合中選擇的有限符號序列。
字符串數據類型
字符串數據類型是根據形式字符串的概念建模的數據類型。字符串是如此重要和有用的數據類型,幾乎所有的編程語言都實現了它們。
在某些語言中,它們可以用作基元類型,而在其他語言中,它們可以用作復合類型。大多數高級編程語言的語法允許通常以某種方式引用的字符串表示字符串數據類型的實例。這種元字符串被稱為文字或字符串文字。
字符串長度
盡管形式字符串可以有任意有限的長度,但實際語言中字符串的長度通常被限制在人為的最大值。壹般來說,字符串數據類型有兩種:定長字符串,它有壹個在編譯時確定的固定的最大長度,並且不管是否需要這個最大值都使用相同的內存量,還有變長字符串;
它的長度不是任意固定的,可以根據運行時的實際需要使用不同數量的內存(參見內存管理)。現代編程語言中的大多數字符串都是變長字符串。
當然,即使是可變長度的字符串也有長度限制——受可用計算機內存的限制。字符串的長度可以存儲為單個整數(這可能會對長度施加另壹種人為限制),也可以通過終止字符來隱式存儲,例如,在C編程語言中,通常是全位為零的字符值。另請參見下面的“無效終止”。