I am trying to understand how pointer incrementing and dereferencing go together, and I did this to try it out:
#include <stdio.h>
int main(int argc, char *argv[])
{
char *words[] = {"word1","word2"};
printf("%p
",words);
printf("%s
",*words++);
printf("%p
",words);
return 0;
}
I expected this code to do one of these:
- First dereference then increase the pointer (printing word1)
- First dereference then increase the value (printing ord1)
- Dereference pointer + 1 (printing word2)
But compiler won't even compile this, and gives this error: lvalue required as increment operand
am I doing something wrong here?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…