簡體   English   中英

檢測字符流結束

[英]Detecting end of character stream

為什么是以下循環:

for (int i=0; string[i] != 0; i++)

通常編寫如下:

for (int i=0; string[i] != '\0'; i++)

如果他們會評估同一件事,那么為什么有人在上面使用\\0 這有什么好處嗎?還是同一件事?

是同一回事。 沒有特別的優勢。 string[i] != '\\0'強調我們正在查看字符。 但是,進一步簡化for (int i=0; string[i]; i++)也同樣適用。

與指針相似。 您可以編寫p != NULLp != 0或僅寫p 第一種形式強調我們在談論指針。 但這是風格問題,而不是正確性。

'\\0'具有ASCII值0 所以,

ASCII('\0') == 0 // same thing

編輯:
其中:ASCII():返回ASCII值的某些函數。 C沒有這種功能(盡管您可以將char打印為%d以獲得其ASCII值)。

主要區別在於類型。 0是一個整數,'\\ 0'是一個字符。 非常老的編譯器由於大小差異會插入轉換代碼,因此使用'\\ 0'效率更高,但是很長一段時間以來一直沒有這種情況。

不過,有些人還是喜歡使用'\\ 0'來使比較類型明確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM