MENU

C++之函数指针&指针函数

指针函数

  • 指针函数:返回值是指针的函数。
# 形式如下
类型名 *函数名(函数参数列表)

# 示例代码
// 由于“*”的优先级低于“()”的优先级,因而swap首先和后面的“()”结合,也就意味着,swap是一个函数 char *swap(char *a, char *b) 等价于 char *(swap(char *a, char *b)) 
// 返回值是一个指针地址。

#include <stdio.h>
char *swap(char *a, char *b){
    b = a;
    return b;
}

int main(int argc, char *argv[]) {
    char a[10] = "hello";
    char b[10] = "world";
    printf("%s", swap(a, b));
    return 0;
}

函数指针

  • 函数指针:指向函数的指针。
#include <stdio.h>

void say_hello(const char *str)
{
     printf("Hello %s\n", str);
}

int main(void)
{
     void (*f)(const char *) = say_hello;
     f("Guys");
     return 0;
}
# 变量f的类型声明void (*f)(const char *),f首先跟*号结合在一起,因此是一个指针。(*f)外面是一个函数原型的格式,参数是const char *,返回值是void,所以f是指向这种函数的指针。而say_hello的参数是const char *,返回值是void,正好是这种函数,因此f可以指向say_hello。

参考文章
函数指针与指针函数
函数类型和函数指针类型

返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码
添加新评论