我有这个代码:
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到下一个字符串。谁能解释一下我的理解不足在哪里?