请帮助我理解我的双指针算法做错了什么。我知道我显然做错了什么但是什么?查看我标记为“错误指针”的行。我的直觉告诉我这应该可行,但我想不行。用 C 编程。
/*
*This function searches for prefixes within the string array.
*@param stringArray array containing strings
*@param searchPrefix a string or characters to search for at beginning of string
*@return void
*/
void prefixSearch(char* stringArray[SIZE], char* searchPrefix){
int count = strlength(searchPrefix);//size of the prefix search
while(count > 0){
if(**stringArray == *searchPrefix){
printf("%c match %c\n", **stringArray, *searchPrefix);
**stringArray++;//want to move to next character, instead get bad pointer.
*searchPrefix++;//moves to next char
}else{
stringArray++;//no match, go to next string
}
count--;//decrement
}
最佳答案
*
和 ++
运算符具有相同的优先级和从右到左的关联性,因此不起作用的行解析如下:
*(*(stringArray++));
我实际上并不理解您的代码,但这不可能是您想要的,因为取消引用运算符没有效果。大概你想要这个:
(**stringArray)++;
关于c - 双指针运算,遍历数组字符串的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373050/