C風格字串結束符用作邏輯判斷

2021-06-12 01:50:31 字數 1359 閱讀 3244

c 語言中0有幾個用途。它是乙個數字量;在字串中它是乙個結束符(』\0』),它是地

址指標所允許的最小值;在邏輯表示式中它表示假,因為它有這麼多的用途,你在程式設計時要清

楚地表明是哪種。

c++ prime p113--115

#include #include using namespace std;

void main()

{char *cp = "hel0lo"; // l與l之間有個數字0,但是它表示的是字元'0',而非數字本身.

// 字串末尾的結束符null 本身就是個數字0,而非字元'0'

// 因為結束符null 是數字0,因此可以用於邏輯判斷

// while ( *cp != null )

// while(*cp !=0)

// while(*cp!='\0')

while(*cp) // 這種寫法最簡單,必須理解.

{ cout<

下文**:

17.1.7  c語言中與0比較的用法

c 語言中0有幾個用途。它是乙個數字量;在字串中它是乙個結束符(』\0』),它是地

址指標所允許的最小值;在邏輯表示式中它表示假,因為它有這麼多的用途,你在程式設計時要清

楚地表明是哪種。

隱含地和邏律變數比較。正如前面提到,這樣寫邏輯表示式是正確的。

while(!done)

這個表示式隱含在和0 作比較是正確的,因為這個比較是在乙個邏輯表示式裡。

數與0 比較。雖然可隱含地把邏輯表示式與0 比較,你卻不可以把數字表示式隱含地與0

比較。對於數字,程式設計:

while(balance!=0)…

而不可寫成

while(balance)…

把字元與結束符(』/0』)字一樣,字元也不是邏輯表示式。因此對字元程式設計:

while(* charptr!=』0』)…

而不能寫成:

while (* charptr) …

這種說法與常用的c 語言在處理字元資料時的習慣可能有出入,但它強化了這種觀點,即

表示式是在處理字元資料,而非邏輯資料。c語言的有些用法並不是基於可讀性和或維護而設計

的,比如上例即是。

把指標與null(空指標)比較。對指標程式設計:

while(bufferptr!=null)…

而不寫成:

while(bufferptr)…

與字元的情形一樣,這也不是c 的常用用法,但卻增強可讀性。  

C語言字串結束符

0 就是8位的00000000,因為字元型別中並沒有對應的這個字元,所以這麼寫。0 就是 字串結束標誌。0 是轉譯字元,意思是告訴編譯器,這不是字元0,而是空字元。空字元 0對應的二進位制為00000000,而數字0為00110000 原來,在c語言中沒有專門的字串變數,通常用乙個字元陣列來存放乙個...

C語言中字串結束符 0

本質 0 就是8位的00000000,因為字元型別中並沒有對應的這個字元,所以這麼寫。0 就是 字串結束標誌。0 是轉譯字元,意思是告訴編譯器,這不是字元0,而是空字元。空字元 0對應的二進位制為00000000,而數字0為00110000 原來,在c語言中沒有專門的字串變數,通常用乙個字元陣列來存...

C語言中字串結束符 0

本質 0 就是8位的00000000,因為字元型別中並沒有對應的這個字元,所以這麼寫。0 就是 字串結束標誌。0 是轉譯字元,意思是告訴編譯器,這不是字元0,而是空字元。空字元 0對應的二進位制為00000000,而數字0為00110000 原來,在c語言中沒有專門的字串變數,通常用乙個字元陣列來存...