您的位置:首页 > 编程语言 > C语言/C++

c语言中指针函数和函数指针

2014-12-15 16:55 260 查看
指针函数和函数指针,真是让初学者恶心的东西。

不谈语言,先把这两个名词分解下,在前面加两个字“指向”再加个“的”:

指针函数,就是指向指针的函数:

从指向来说,这个指向的是指针;

指向的是指针,一个函数的入参和出参中,只有的返回值是可以具有指向的,所以表示的是指向某种类型的指针(包括void*类型)

使用举例:

#include <stdio.h>
int* add(int a, int b);
void main(){
     int *p=add(2, 3);
     printf("%d\n", *p);
}

//注意,如果t写进add里面,会产生野指针
int t=0;
//这里使用返回值指向int类型的指针
int* add(int a, int b){
     t = a+b;
     return &t;
}


函数指针,就是指向函数的指针:

这个指向的是一个函数,顾名思义,指向的是一个函数;

自然就可以写出表达式:
void (*p)(int a, int b);
这里p就是指向的参数为int a, int b的函数。

使用举例:

#include<stdio.h>
int add(int a, int b){
     return a + b;
}

void main(){
     int (*p)(int a, int b);
     p = add;
     printf("%d\n",(*p)(3, 5));
}


经过笔者的分析,是不是感觉简单点了?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: