Re: [問題]問個c語言問題
※ 引述《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)
推
02/25 17:20, , 1F
02/25 17:20, 1F
→
02/25 17:21, , 2F
02/25 17:21, 2F
→
02/25 17:21, , 3F
02/25 17:21, 3F
→
02/25 17:21, , 4F
02/25 17:21, 4F
推
02/25 17:30, , 5F
02/25 17:30, 5F
討論串 (同標題文章)