所以我一直很难理解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/