“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” というエラーメッセージが発生することになります。
コメント