c语言中指针函数和函数指针
2014-12-15 16:55
260 查看
指针函数和函数指针,真是让初学者恶心的东西。
不谈语言,先把这两个名词分解下,在前面加两个字“指向”再加个“的”:
指针函数,就是指向指针的函数:
从指向来说,这个指向的是指针;
指向的是指针,一个函数的入参和出参中,只有的返回值是可以具有指向的,所以表示的是指向某种类型的指针(包括void*类型)
使用举例:
函数指针,就是指向函数的指针:
这个指向的是一个函数,顾名思义,指向的是一个函数;
自然就可以写出表达式:
void (*p)(int a, int b);
这里p就是指向的参数为int a, int b的函数。
使用举例:
经过笔者的分析,是不是感觉简单点了?
不谈语言,先把这两个名词分解下,在前面加两个字“指向”再加个“的”:
指针函数,就是指向指针的函数:
从指向来说,这个指向的是指针;
指向的是指针,一个函数的入参和出参中,只有的返回值是可以具有指向的,所以表示的是指向某种类型的指针(包括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)); }
经过笔者的分析,是不是感觉简单点了?
相关文章推荐
- C语言:分清函数指针和指针函数
- C语言 复杂指针的申明问题 数组指针 指针数组 函数指针 指针函数一览无遗! C/C++求职面试必备考点(四)
- [C语言]指针数组和指针数组|函数指针和指针函数
- 简要说明C语言中指针函数与函数指针的区别
- 详细介绍C语言指针函数和函数指针
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- (不错)C语言教程之十七:指针函数和函数指针
- 黑马程序员———C语言———【函数指针、指针函数、野指针、内存管理、const关键字】
- C语言指针函数和函数指针详细介绍
- 巩固C语言(十)----指针数组 & 函数指针和指针函数
- C语言 复杂指针的申明问题 数组指针 指针数组 函数指针 指针函数一览无遗! C/C++求职面试必备考点(四)
- iOS开发学习笔记 2-9 C语言部分 内存分配函数 函数指针 指针函数 void*
- C语言--指针函数和函数指针
- C语言-函数指针和指针函数
- C语言指针导学(4)——分清函数指针和指针函数
- c语言指针函数和函数指针
- C语言指针导学(4)——分清函数指针和指针函数
- c语言 指针函数 函数指针
- C语言-------指针函数与函数指针的区别
- c语言指针函数与函数指针