3

ステートメントをコーディングして実行すると、次のようになります。

   print "\x00\x00\x00"

Python では、3 つの空白スペースとそれに続く改行を出力します。しかし、C でステートメントをコーディングして実行すると、次のようになります。

   char hex[] = "\x00\x00\x00";
   printf("%s\n", hex);

私が思っていたように NULL バイトを解釈します。何もしません。では、なぜ Python では NULL バイトがスペースとして扱われるのでしょうか?...

4

1 に答える 1

10

では、なぜ Python では NULL バイトがスペースとして扱われるのでしょうか?

そうではありません。端末/コンソールはそれらをスペースのように扱っています。C はたまたま最初の NUL で停止しますが、Python はそれらを出力します。代わりに、標準出力に 3 つの NUL を書き込んでみてください。

于 2012-05-27T01:10:01.120 に答える