bool,内联函数,函数重载,函数参数缺省,引用

目录

一:bool 类型是一种数据类型

二:内联函数:

内联函数怎么用;

哪些函数适合内联:

三:函数重载:

四:函数参数缺省:

五:引用;


c语言中是没有bool类型的


一:bool 类型是一种数据类型


取值范围只有true(真) 和false(假)
Bool类型的变量在内存中只占一个字节(注意是bool类型的变量,因为本身类型是不占内存的)
定义:不论是c 还是c++,定义变量都是类型名加变量名: bool is _live;
注意事项:虽然BOOL类型的取值范围只有true 和false 等,但是也是可以赋什么表达式之类的,bool类型的赋值不仅只可以是true和false,但是要记住非0为真
用代码解释一下:
 

#include<stdio.h>
int main()
{
    bool is_Live = true;//非0为真,0为假,那么多非0,这里统一用1表示真
    printf("%d\n", is_Live);
    is_Live = false;
    printf("%s\n", is_Live ? "true" : "false");
    printf("%d\n", sizeof(is_Live));//这里输出的字节数目是一字节,因为Bool类型的变量的字节数就是一
    printf("%d\n", sizeof(bool))//这里输出的字节数目也是一字节,虽然这里测量的是bool,是一种类型,但是这里我们需要注意的是,这里系统会给出一个临时
        //变量,是bool类型的变量,所以这里测量的还是bool类型的变量,也就是一字节
        return 0;
}


二:内联函数:


本质:内联函数本质上还是一个函数
存在的价值以空间换取时间(内存膨胀):消耗巨大的内存,从而提升速度,减少程序运行的时间;
内存膨胀是在代码区膨胀,一般的函数:原来的代码存放在栈区,需要过程,然后调到代码区才可以执行,这样就会消耗一些时间,而内联函数的代码直接在代码区连续膨胀
占用内存,就不必再进行入栈和出栈了,这样就减少了时间,从而提高了速度,增大了效率

内联函数怎么用;


语法:inline 返回值类型 函数名 (形参列表)
{
    函数体;
}


代码:inline int getnum()
{
    return 6;
}

//这就是内联函数,函数调用还是一样的
特点:内联函数还是一个函数,只不过是内存膨胀的函数

哪些函数适合内联:

短小精悍(函数要短,没有循环之类的,用的次数要多);
//因为内存膨胀也需要占用空间,这就相当于是我们的成本,节约的时间就是我们的收益,那么我们应该实现的是收益大于成本,所以短小精悍的函数适合内联,因为短小
//说明所占用的空间少,那么我们付出的成本也少,精悍的是因为我们使用的次数多,一次节约一秒,用的越多,节约的时间也更多,量变产生质变。


三:函数重载:

同一个项目中,可以有相同的函数名
函数重载的条件:函数名必须相同
参数表必须不同:(参数个数,对应位置的参数的类型)
//也就是说除了函数名要一致,剩下的只要有一点点不同就是函数重载

**************                注意:返回值类型不考虑,函数重载的对象可以是两个及其以上;


四:函数参数缺省:

传参数的时候可以少传,缺少的可以是实参

void test(int num, int val = 0);
int main()
{
    test(1, 2);
    test(5);
    return 0;

}
//在形参列表直接初始化,但是只能缺省形参列表前面的,因为传参时是从前往后传的。形参列表不能是int num=3,int val;
//可以这样记忆:参数是从前往后传递,那就从前往后缺省


五:引用;

变量(对象)的别名
核心:引用和被引用的对象共享一段内存
语法:被引用的对象类型&引用名 = 被引用的对象;
举例子:int num = 9;
int &val = num;
注意事项:必须初始化,比如给一个人起外号,这个外号只能对应他
这里的&是解析引用符
由于是取别名所以不会产生新的变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翘指

创作不易,一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值