增加指针的值不起作用

use*_*918 -1 c

该程序应该使用指针计算相似条目的数量,但每当我输入数字时,计数器总是等于零.我出了什么问题?

#include <stdio.h>
#include <stdlib.h>

//using function to count similar enteries in an array...
void count_similar_enteries(int array_func[10],int *number, int *ptr_to_counter);

int main()
{
    int number = 0;
    int array[10] = {0,1,1,2,3,1,2,67,65,1};
    int counter = 0;
    printf("enter a number\n");
    scanf("%d", &number);
    count_similar_enteries(array, &number,&counter);
    printf("the number of similar enteries are %d\n", counter);
    return 0;
}

void count_similar_enteries(int array_func[10],int *number, int *ptr_to_counter)
{
    int i;
    for (i = 0; i< 10 ; i++)
    {
        if(array_func[i] == *number)
        {
            *ptr_to_counter++;
            continue;
        }
        else
        {
            continue;
        }
    }   
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*oun 7

*ptr_to_counter++;在递增指针本身,写(*ptr_to_counter)++;递增ptr_to_counter.

请注意,这continue;是多余的.你不必在if-else那里.无论如何,循环将"循环".你可以这样做:

for(i = 0; i< 10 ; i++) {
   if(array_func[i] == *number) {
      (*ptr_to_counter)++;
   }
}
Run Code Online (Sandbox Code Playgroud)

我建议你尽可能多地减少指针的数量,例如,你不必通过指针传递计数器.您可以拥有一个本地int counter;并将其值返回给调用者.

  • 猜猜你会接受他的回答,是吗?;) (2认同)