C语言算法入门-指针函数和函数指针

2018年11月2日

leetcode的确是一个不错的网站,希望能提升自己的算法力

int* twoSum(int* nums, int numsSize, int target) { 

}

出现的第一个方法,很久没做C的我也懵逼了,这是函数指针还是指针函数,首先这是函数确实的,所以他是有返回值的。而且返回值是一个指针。那就是说他肯定是指针函数了。

1 指针函数

顾名思义:就是指针函数了,只不过返回的值是指针变量而已,记住返回指针的函数就好了;

举个栗子: int *f(int a, int b); // 声明指针函数  

//小写字符转换为大写字符指针函数

char *  upper(char *str) {

  // 先保留初的地址。因为等会str指向的位置会变来变去的。

  char *dest = str;

   //如果不是非空字符串则进行循环变量转换

  while(*str != '\0'){

    if(*str >='a'  && *str <= 'z'){

      //转为大写

      *str -= 'a' -'A';

    }

    str ++;//遍历下一个

  } 

    return dest;

}

int main()

{

    // 定义一个字符串变量

    char str[] = "gxj";

    // 调用函数

    char *dest = upper(str);

    printf("%s", dest);

    return 0;

}

结果:GXJ

2 函数指针

搞懂了指针函数,函数指针就很简单了

char str[] = 'gxj';

//声明一个函数指针

char (*lowtoupper)(char *str);

lowtoupper = upper;

//使用函数指针upper调用函数

lowtoupper (str); 

结果:GXJ
posted @ 2018-11-02 17:50  易先讯  阅读(340)  评论(0编辑  收藏  举报