1. ホーム
  2. c

[解決済み] size_tとunsigned intの違い?

2022-06-01 08:30:41

質問

についてとても混乱しています。 size_t . インターネットで検索してみると、どこもかしこも size_t は符号なし型なので、非負の値のみを表すことができます。

最初の疑問は、もし非負の値だけを表すのに使われるのであれば、なぜ unsigned int の代わりに size_t ?

2 つ目の質問は size_tunsigned int は互換性があるのかないのか?もしそうでないなら、なぜですか?

の良い例を教えてください。 size_t の良い例と、その仕組みを簡単に教えてください。

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

<ブロッククオート

は負でない値を表現するために使われるのであれば、なぜ私たちは unsigned int の代わりに size_t

なぜなら unsigned int は唯一の符号なし整数型ではありません。 size_t のいずれかである可能性があります。 unsigned char , unsigned short , unsigned int , unsigned long または unsigned long long のように、実装によって異なります。

2つ目の疑問は size_tunsigned int は互換性があるのかないのか、もしそうでないならなぜなのか?

上記の理由により、互換性はありません。 ^^ .

そして、誰か私にsize_tとその簡単な動作の良い例を与えることができますか?

私はあなたが"its brief working"によって何を意味するのかよく理解できません。他の符号なし型と同じように(特に、typedffedされた型と同じように)動作します。あなたは size_t を使うことが推奨されます。特に sizeof 演算子や様々な標準ライブラリ関数、例えば strlen() を返す size_t .

ボーナス いい記事がありますよ について size_t (および密接に関連する ptrdiff_t タイプ)。なぜそれを使うべきなのか、とてもよく理由が書かれています。