c++ - strcmp
迷茫
迷茫 2017-04-17 15:03:10
0
2
652
char a[2] = { '1','2' };
printf("%d", strcmp(a, "12"));

结果为 1

一个没有结束符,一个有结束符,为什么没有的比有的大?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(2)
小葫芦

Char は一般に符号なし整数とみなされ、a[2] はランダムな値であり、0 より大きい場合と 0 に等しい場合の 2 つの状況のみが存在します。

ほとんどの場合、a[2] は ' より大きいです'、1を返します。

いいねを押す +0
小葫芦

前の質問と同様に、その質問では、私の答えは群衆によって踏みにじられました。文字列は文字列であり、文字配列は文字配列です。 strcmp 関数では、文字列を渡す必要があります。文字列のみに含まれるためです。 リーリー

得られる結果は実際には 1 ではなく、ランダムな値です。 strcmp 関数は

の長さを知らないため、メモリへの範囲外のアクセスを実行します。 a

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート