數組的元素可以是任意一種類型,而字串是一種特殊的數組,它使用了一種眾所周知的確定其長度的規則。
有兩種類型的語言,一種簡單地將字串看作是一個字元數組,另一種將字串視為一種特殊的類型。 C屬於前一種,但有一點補充,即C字串是以一個NUL字元結束的。陣列的值和陣列中第一個元素的位址(或指向該元素的指標)是相同的,因此通常一個C字串和一個字元指標是等價的。
一個陣列的長度可以是任意的。當數組名用作函數的參數時,函數無法透過數組名本身知道數組的大小,因此必須引入某種規則。對字串來說,這種規則就是字串的最後一個字元是ASCII字元NUL('注意:有人稱這種現象為“C的幽默”,正是因為這種幽默,絕大多數C程式設計師才會整天被自己編寫的程式所困擾,難得忙裡偷閒一次。