ポインターのインクリメントと逆参照がどのように連携するかを理解しようとしています。これを試してみました。
#include <stdio.h>
int main(int argc, char *argv[])
{
char *words[] = {"word1","word2"};
printf("%p\n",words);
printf("%s\n",*words++);
printf("%p\n",words);
return 0;
}
私は、このコードが次のいずれかを実行することを期待していました。
- 最初に逆参照してからポインターを増やします (word1 を出力します)
- 最初に逆参照してから値を増やします (ord1 を出力)
- 逆参照ポインタ + 1 (word2 の出力)
しかし、コンパイラはこれをコンパイルすることさえせず、このエラーを出します:lvalue required as increment operand
ここで何か間違ったことをしていますか?