如何发送指向函数的指针?(这是不同的)

时间:2015-11-15 15:06:58

标签: c function pointers

#include<stdio.h>
#include<conio.h>

int step_counter(char *array);

int main()
{
    char *txt = "Try...";

    printf("%d",step_counter(&txt));
    getch();
}

int step_counter(char *array)
{
   int step=0;
   while(*array==NULL)
   {
      array++;
      step++;
   }
   array-=step;
   return step;
}

我需要发送一个指向没有数组的函数的指针。我怎么解决这个问题?我累了几个月因为试图解决这个问题......

1 个答案:

答案 0 :(得分:2)

这可能是你正在努力实现的目标。

#include<stdio.h>

int step_counter(char *array);

int main()
{
   char *txt = "Try...";

   printf("%d",step_counter(txt));
   return 0;
}

int step_counter(char *array)
{
   int step=0;
   while(*array)
   {
       array++;
       step++;
   }
   return step;
}

<强>被修改

首先,txt是指向字符数组的指针,因此您不必发送&txt来传递其地址,因为txt本身就是一个地址。第二,在while循环中,您可以使用while(*array)while(*array != '\0')来检查字符数组终止。哦哦!正如alk指出的那样,array-=step;是多余的。