私はこのコードを持っています:
char *name[] = { "a1", "b2", "c3", "d4" };
printf("%s\n", *name); //the critical line
関連critical line:
この形式では、出力は単純です: a1. を次のように置き換えるcritical lineと:
printf("%s\n", ++*name);
出力は1です。今まではすべて良かったと思います。
nameそれぞれ最初の文字列へのポインタであることを考慮して、次の"a1"ように置き換えcritical lineます。
printf("%s\n", ++name);
出力として結果が得られることを願っています"b2"。しかし、私はこのエラーが発生します:
../src/test.c:32: error: lvalue required as increment operand.
質問++*name:が正当である理由が理解できません。name最初の文字列へのポインターであり、そうで++nameはありません。私の意見では、は次の文字列に++name移動する必要があります。name私の理解力のどこが欠けているのか、誰か説明してもらえますか?