回答受付が終了しました

ID非公開

2021/6/11 12:52

33回答

C言語でchar型と

C言語関連39閲覧

回答(3件)

1

色々違います。 char は1バイトと定められていますが、intはバイト数が定められていません。 少なくとも -32767から32767を表現でき、signed char 以上の範囲を表現できる型です。 また、charの符号の有無は処理系によります。 int は必ず符号付きです。 それから、演算の際に char のような int 以下の変換順位をもつ型は、整数拡張によって int または unsigned int に型変換されます。 その型で表現できるすべての値が int で表現できる場合は、int, そうでない場合は unsigned int になります。 たとえば、 (char)5 + (short)2 は、char や short で表現できる全ての値が int で表現できる場合は、暗黙に (int)(char)5 + (int)(short)2 と型変換されてから演算されます。 あとは、そもそも用途として、char と int という名前(character, integer)からして、 char は主に文字を表すのに使う int は主に整数を表すのに使う という違いがあります。

1人がナイス!しています

1

char型は符号の有無は環境依存だけど、 int型は必ず符号付きです。 また、int型のサイズは環境により異なります。

1人がナイス!しています

2

エンディアンが異なるマシン間のデータ授受では charならエンディアンの意識は不要だが、intなら意識する必要がある。

2人がナイス!しています