为什么定义\ 0作为在C中的字符数组的第一个元素?
当我读取BlueZ源代码时,我经常看到像这样定义的char数组: 
 // bluez/android/sco-msg.h static const char BLUEZ_SCO_SK_PATH[] = "\0bluez_sco_socket"; 
 将第一个元素定义为\0什么好处? 
 在你的特定情况下,这个数组被用作PF_LOCAL套接字的path名; 看到这里 。 而领先的NUL则用来表示地址是抽象的。 从男人7 unix : 
抽象套接字地址是由sun_path [0]是一个空字节('\ 0')的事实来区分的。
 这就是为什么第一个元素是\0的唯一原因。