C++学习第二十五天----函数指针

1.函数指针
const double *f1(const double ar[], int n);//1
const double *f2(const double [], int);//2
const double *f3(const *, int);//3

看第一个的参数const double ar[],应该了解它和const double *ar是完全相同的;
其次,函数原型中标识符可以省略,const double ar[]就是const double [],
                             const double *ar 就是const double *;

        看上面三个函数原型,可以说它们的意义是完全相同的。

        另外,函数定义和函数原型声明不同,定义是都要有的。

        运算符[]的优先级高于 * 嗷。

        最后提一嘴,auto,自动类型推断,其确保变量的类型与赋给它的初值的类型一致,但我们提供的初值的类型可能是错误的。

auto pc = *pa;

2.typedef进行简化

1.创建类型别名
    typedef unsigned short uint16_t;

2.将别名当作标识符进行声明
    typedef const double *(*p_fun)(const double *, int);
    p_fun p1 = f1;

3.内联函数

        占用内存更大,运行速度更快。我们所写的常规函数,调用的时候都是跳转到函数的地方去执行,内联函数有点类似直接把函数写在需要调用的地方,每个需要调用的地方都写,而不是封装成函数进行调用。

1.在函数声明前加上关键字inline;
2.在函数定义前加上关键字inline;

通常的做法是,省略原型,将整个定义写在原本放原型的地方(也就是主函数之前)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值