4

我是 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++ ){
    //....
}

我知道 get 是不安全的,不推荐和不推荐使用,但根据我的规范,我必须使用它。我想使用指针遍历每个元素。

4

3 回答 3

12

你的测试应该是*p_string != '\0';

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

于 2012-11-17T19:49:35.713 回答
3
    char str[] = "54321"; 
    char *p;  
    p = str;   
    for (p; *p != '\0';++p)
    {
         printf("%s \n",p);
    }

输出:
54321
4321
321
21
1

于 2015-01-19T19:30:46.913 回答
1

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

于 2012-11-17T19:50:14.577 回答