Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
464 views
in Technique[技术] by (71.8m points)

incrementing an array of pointers in C

this is probably an essentially trivial thing, but it somewhat escapes me, thus far..

char * a3[2];
a3[0] = "abc";
a3[1] = "def";
char ** p;
p = a3;

this works:

printf("%p - "%s" ", p, *(++p));

this does not:

printf("%p - "%s" ", a3, *(++a3));

the error i'm getting at compilation is:

lvalue required as increment operand

what am i doing wrong, why and what is the solution for 'a3'?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can't assign to a3, nor can you increment it. The array name is a constant, it can't be changed.

c-faq


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...