【发布时间】:2009-03-18 16:36:06
【问题描述】:
我正在练习使用指针。
我有一个指向 3 个字符串数组的指针:“dog”、“cat”、“rat”。
我可以使用for 循环和数组来打印内容。
但是,我在使用指针算法打印它们时遇到问题。我想增加指向数组中下一个元素的指针。但是,它所做的只是打印狗字母。
代码:
int main(int argc, char **argv)
{
char *str[3] = { "DOG", "CAT", "RAT"};
int i = 0;
/* display using an array element */
for(i = 0; i < 3; i++)
{
printf("str: %s\n", str[i]);
}
/* display using a pointer arthimatic */
while((*str)++)
{
printf("str: %s\n", str);
}
getchar();
return 0;
}
我怎样才能做到这一点?
编辑:
代码:
while(str)
{
printf("str: %s\n", *(str++));
}
但是,我收到此错误消息。 I 值不是必须是某种变量吗?
错误 C2105:“++”需要左值
【问题讨论】:
-
最好不要增加 str,而是使用 str 初始化的循环变量,这样您以后可以再次访问 str。字符 *循环 = str;而(循环)...
-
在下面查看我的答案:指出您收到该错误的原因。