1. ホーム
  2. c

なぜC言語ではchar配列の1番目の要素に "the \0" を定義するのですか?

2023-10-24 11:56:34

質問

私が読むとき のソースコードを読むと、よく char 配列がこのように定義されているのを見かけます。

// bluez/android/sco-msg.h
static const char BLUEZ_SCO_SK_PATH[] = "\0bluez_sco_socket";

最初の要素を \0 ?

どのように解決するのですか?

あなたの特定のケースでは、この配列はパス名として PF_LOCAL ソケットのパス名として使われます。 を参照してください。 . また、先頭のNULは、アドレスが抽象的なものであることを示すために使用されています。ここから man 7 unix :

<ブロッククオート

抽象的なソケットのアドレスは sun_path[0]がヌルバイト('ᴗ')であることで区別されます。

そして、これだけでは、最初の要素が \0 .