私はこのコードを持っています:
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
私の理解力のどこが欠けているのか、誰か説明してもらえますか?