【C言語】invalid operands to binary OP (have ‘xxx’ and ‘yyy’)

“invalid operands to binary OP (have ‘xxx’ and ‘yyy’)” というエラーメッセージは、二項演算子 (例えば +-* など) を適用しようとしたとき、演算子の左右のオペランドの型が異なる場合に表示されます。

例えば、次のようなコードを書いたとします。

int x = 10;
double y = 3.14;
int z = x + y;

このコードでは、変数 x の値を整数型で、変数 y の値を浮動小数点型で定義しています。そして、二項演算子 + を使って、xy の値を足し合わせることを試みています。

しかし、整数型と浮動小数点型を直接足し合わせることはできないため、このコードは “invalid operands to binary + (have ‘int’ and ‘double’)” というエラーを引き起こします。

正しいコードは、次のようになります。

int x = 10;
double y = 3.14;
double z = x + y;

この場合、変数 x の値を整数型で、変数 y の値を浮動小数点型で定義したままですが、結果を格納する変数 z を浮動小数点型にしています。そのため、演算子 + を適用した結果も浮動小数点型になり、このコードはエラーを引き起こしません。

コメント

タイトルとURLをコピーしました