看板 Electronics 關於我們 聯絡資訊
※ 引述《adddream (哆啦A孟)》之銘言: : 了解 : 真是太感謝您囉 : 不過想再追問一下 : (1)為捨'\0'是表示false阿 更精確一點,在C/C++及一些其他語言中 'x'代表的型態是int (不是char*) 所以應該要說"\0"比較適當一點 "\0"的意思就是使該字元的ascii code值為\後面的數字 C/C++中也有一些方便記憶的序列,例如\n,\r,\b... 最早的C是沒有boolean的型別的 所以用int來代表真假 0為假,非0為真 : (2)還有就是通常在陣列裡頭結尾(不管是指哪種陣列)不都是會加上'\0'嗎? : 還是說是我記錯了@@' 這只有C-like string才是這樣 這只是為了方便以最小的記憶體操作字串的技巧 你高興自創一個不用\0的string也可以 只是就不能用string.h裡面的函式啦 另外"\0"可以想成是signature,通常用來代表特定區塊的邊界 譬如說FAT32分割區中會以0xAA55代表分割區的開始 要注意的就是通常只有"文字"資料才會"只"利用signature來切割 (FAT32其實還有其他欄位去進行辨認) 如果你的資料是binary形式的 通常就會使用類似HTTP協定加註資料長度的方式來辨別區塊的邊界 要不然就要使用strip的方式,將衝突的signature先替換掉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.204.89 ※ 編輯: invalid 來自: 61.231.204.89 (02/25 16:58)
zxvc:可是我用gcc compile: if("\0") printf("y"); 02/25 17:20
zxvc:會印出『y』。 02/25 17:21
zxvc:用:if('\0') printf("y");就不會印出y。 02/25 17:21
zxvc:所以'\0'應該才是false。 02/25 17:21
strike519:C_and_CPP 那裡討論會比較合適喔! 02/25 17:30