感君傾耳。
在学习 C 语言时一直对 '\0' 充满疑惑,不知道为什么要这样去设计 string. 昨天读完 CISC vs. RISC 后,在晚饭过后突然恍然大悟,在那个内存极其宝贵的年代,我们的程序员都是极其"抠门"的,如果要保存字符串数组的长度,我们就需要额外的空间来记录他的长度,当字符串长度小于 255 (2^8) 时,这个记录长度的变量所占空间为 1 byte,当超过 255 则需要另外的一个 byte 来存放长度信息,以此类推。那么在字符串后面添加终止符的做法便显得十分巧妙。
随笔
在学习 C 语言时一直对 '\0' 充满疑惑,不知道为什么要这样去设计 string. 昨天读完 CISC vs. RISC 后,在晚饭过后突然恍然大悟,在那个内存极其宝贵的年代,我们的程序员都是极其"抠门"的,如果要保存字符串数组的长度,我们就需要额外的空间来记录他的长度,当字符串长度小于 255 (2^8) 时,这个记录长度的变量所占空间为 1 byte,当超过 255 则需要另外的一个 byte 来存放长度信息,以此类推。那么在字符串后面添加终止符的做法便显得十分巧妙。