【C言語】wrong type argument to increment

“wrong type argument to increment” というエラーメッセージは、C 言語のインクリメント演算子(++)が適用できない型の式に対して使用された場合に発生します。

例えば、次のようなコードを見てみましょう。

#include <stdio.h>

int main(void) {
  int x = 123;
  char c = 'A';

  // x は int 型の変数なので、++ 演算子は適用できます。
  ++x;

  // c は char 型の変数なので、++ 演算子は適用できます。
  ++c;

  // "abc" は文字列リテラルなので、++ 演算子は適用できません。
  // そのため、このコードはエラーになります。
  ++"abc";

  return 0;
}

このコードでは、最初の ++x の行では x という int 型の変数に ++ 演算子が適用されています。これは、++ 演算子が適用できる int 型の式であるため、問題ありません。

2番目の ++c の行では c という char 型の変数に ++ 演算子が適用されています。これも、++ 演算子が適用できる char 型の式であるため、問題ありません。

しかし、3番目の ++”abc” の行では “abc” という文字列リテラルに ++ 演算子が適用されています。これは、++ 演算子が適用できない文字列リテラルであるため、このコードはエラーになります。

このように、C 言語では ++ 演算子が適用できない型の式に対して使用された場合、”wrong type argument to increment” というエラーメッセージが発生することになります。

コメント

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