C语言小问题--函数定义理解
来源:互联网 发布:天刀薛无泪捏脸数据 编辑:程序博客网 时间:2024/06/04 12:07
一切为了学习 一切都为了向钱看齐 。。。。。。。。。。。。。。。 No BB 直接看问题 看下面定义的三个函数 有什么区别
1: int fun (int,int )
2: int (*fun) (int ,int )
3: int * fun (int,int )
4:typedef int (*fun) ()
第一个 :int fun (int,int )
很easy 就是简单的定义了 返回值为整形的函数 可能新手会问到 里面的形参怎么只有类型没有形参的变量名呢 这里顺道说一下 函数定义的形式吧 函数原型的一般形式有两种
1:函数类型 函数名 (参数类型1 参数名字 , 参数类型2 参数名字,..........)
2:函数类型 函数名 (参数类型1,参数类型2,................)
只是我们开始学的时候可能没注意到第二种形式
第二个:int (*fun) (int ,int )
这个 是定义了一个指向函数的指针 指向函数的指针是这样定义的
类型名 (*指针变量名) (函数参数表列) 这里的类型名 指的是函数返回值的类型
其实就是这个指针变量指向的那个函数的返回类型 指向的那个函数有两个形参 我们如何判断一个变量是否是指向函数的指针呢 首先看变量前面有没有* 如果有 并且 *和指针变量是用小括号括起来的 他就是指向函数指针的变量 这里指的注意的是 如果没有小括号 那么味道就会大变了 看第三个
第三个 :int * fun (int,int )
这个和 第二个看起来 很相似 只是少了一个括号而已 但是这时候 fun就已经不再是指向函数的指针指针变量了 因为这个时候 *的优先级小于()的 所以函数相当于是int * (fun (int ,int )) 这样就成了 声明了一个返回一个整形指针的函数了 fun自然也就不是指向函数的指针变量了
第四个 :typedef int (*fun) ()
typedef是定义了一个类型 这里定义的类型就是 fun,表示指向返回值为int型的函数指针,他可以用来声明一个或者多个函数指针
比如fun fun1 ,fun2,
其实这样声明就等价于
int (*fun1)( ) int (*fun2) ( )
其实我也理解不透彻 哈哈
- C语言小问题--函数定义理解
- C语言函数嵌套定义问题
- C语言小问题之——结构体定义
- c语言定义问题
- C语言函数只定义而不声明问题
- 一个C语言函数声明和定义的编译问题
- C语言函数理解
- C语言小函数
- C语言小函数
- C语言中定义函数
- C语言函数指针定义
- C语言宏定义函数
- C语言小问题
- C语言小问题
- C语言小问题
- c语言小问题
- c语言小问题
- c语言小问题
- 背包问题
- C#--登陆窗体完善与控件
- 三种交换网络:电路交换 报文交换 分组交换
- 日期类的实现
- 剑指offer--(12) 矩形覆盖
- C语言小问题--函数定义理解
- 欢迎使用CSDN-markdown编辑器
- 剑指offer--(13)二进制中1的个数
- 【数据结构】顺序表、单链表的 比较+总结
- tomcat8 源码 之单例模式
- 很好的一道面试题
- 关于元素和要素的问题
- 读书笔记∣《世界是数字的》知识点整理
- CSAPP AttackLab