一 概述
在C語言中,是將字符串作爲字符數組來處理的,也就是使用一個一維字符數組來存放字符串。字符串中的字符是逐個存放在數組元素中的。
我們在討論字符串長度的時候實際上討論的是字符串的實際長度,而非對應字符數組的長度。如,定義一個字符數組長度爲100,實際有效的字符只有40個。那我們如何通過實際代碼知道位置字符串的長度呢。在C語言中規定了一個"字符串結束的標誌"。即以字符"\0"作爲結束標誌。如果字符數組存在若干字符,前面的8個字符都不是空字符"\0",而第9個字符爲空字符"\0",則認爲數組中字符串的有效長度爲8。
C系統中使用字符數組存儲字符串的常量的時候會自動加一個'\0'作爲結束符。
二 說明
'\0'代表ASCII碼爲0的字符,從ASCII碼錶中可以查到。ASCII碼爲0的字符並不是一個可以顯示的字符,而是一個"空操作符",即它什麼也不做,只是用來作爲字符串結束的標誌不會產生附加的操作或增加有效字符,只是達到一個辨別的標誌。
三 系統識別結束的原理
例子:printf("How do you do? \n")
實際上,在向內存中存儲時,系統自動在最後一個字符'\n'的後面加上一個'\0',作爲字符串結束的標誌。而在執行printf函數時,沒輸出一個字符檢查一次當前字符是否爲'\0',如果是'\0'就會停止輸出。
四 字符串常量初始化字符數組
如 char c[] = {"I am happy"}; 此時我們可以省略花括號,直接寫成:char c[] = "I am happy"; 後者直接使用字符串常量初始化字符數組。