所以我一直很难理解C语言中的指针,我的问题是如何使char*find_ch_ptr返回char*我的石膏问题也到处都是如果这里出了什么问题,你能解释清楚吗?

/*
 * Return a pointer to the first occurrence of <ch> in <string>,
 * or NULL if the <ch> is not in <string>.
 *****
 * YOU MAY *NOT* USE INTEGERS OR ARRAY INDEXING.
 *****
 */
char *find_ch_ptr(char *string, char ch) {
        char * point = (char*)(string + 0);
        char * c = &ch;
        while(point != '\0') {
                if(point == c) return (char*)point;
                else *point++;
        }
        return (char*)point;    // placeholder
}

最佳答案

要比较当前由point指向的字符,需要将point*运算符取消引用,如下所示

while (*point != '\0')

然后你想比较你正在寻找的角色,但你做的方式也不对。
您正在比较变量ch的地址与当前point指向的地址,这是错误的
if (*point == ch)

相反。

关于c - C指针问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29518863/

10-15 06:28