C用指针循环数组

时间:2012-11-17 19:47:49

标签: c pointers loops for-loop

我是C新手,但我有Java和Android方面的经验。 我的for循环中有问题。它永远不会结束,只是继续下去。

char entered_string[50];
char *p_string = NULL;

gets( entered_string );

for( p_string = entered_string; p_string != '\0'; p_string++ ){
    //....
}

我知道获取是不安全的,不推荐和弃用,但根据我的规格,我必须使用它。我想通过使用指针遍历每个元素。

3 个答案:

答案 0 :(得分:10)

您的测试应为*p_string != '\0';

p_string是一个指针,你的循环正在检查指针是否为!= '\0'。如果值为!= '\0',您会感兴趣,并且要从指针中获取值,您必须使用*取消引用它。

答案 1 :(得分:2)

    char str[] = "54321"; 
    char *p;  
    p = str;   
    for (p; *p != '\0';++p)
    {
         printf("%s \n",p);
    }

输出:
54321个
4321
321个
21个
1

答案 2 :(得分:1)

条件应为*p_string != '\0' - 您需要取消引用指针。