char a[2] = { '1','2' };
printf("%d", strcmp(a, "12"));
结果为 1
一个没有结束符,一个有结束符,为什么没有的比有的大?
高洛峰2017-04-17 15:05:10
Char は一般に符号なし整数とみなされ、a[2] はランダムな値であり、0 より大きい場合と 0 に等しい場合の 2 つの状況のみが存在します。
ほとんどの場合、a[2] は ' より大きいです'、1を返します。
高洛峰2017-04-17 15:05:10
前の質問と同様に、その質問では、私の答えは群衆によって踏みにじられました。文字列は文字列であり、文字配列は文字配列です。 strcmp 関数では、文字列を渡す必要があります。文字列のみに含まれるためです。 リーリー
得られる結果は実際には 1 ではなく、ランダムな値です。 strcmp 関数は の長さを知らないため、メモリへの範囲外のアクセスを実行します。 a