C++中关于“名字修饰”、“引用”、“内联函数”、”auto关键字“的相关知识

一、名字修饰
1、在C语言中,名字修饰只是在函数名之前加下划线,所以只要函数名相同,就会导致冲突;
2、在C++中,名字修饰是“?函数名@域名1@域名2…@@参数列表@Z”的格式构成的,包含:a:函数名,b:所在域,c:参数列表,所以在C++中,以上三个必须完全相同,才会出现冲突,这就是函数重载的原理;

二、引用
1、引用是给一个变量起别名,两个名字都指一个变量,操作谁,在结果上是一致的;
2、引用是代替指针完成跨栈操作的,所以它具备指针跨栈的一切特点;
3、引用的底层实现实际是指针;
4、在语法概念上引用就是一个别名,没有独立空间,和其引用实体共用同一块空间,在底层实现上实际是有空间的,因为引用是按照指针方式来实现的。
特点:
1、引用在定义时,必须初始化;
2、一个变量可以有多个引用;
3、一个引用一旦引用了一个变量,就不能再引用其他变量了。

引用比指针使用起来相对安全,因为指针有可能存在其他指向,但是引用不会;

三、内联函数
1、调用时不创建新栈而直接在调用处展开的函数叫做内联函数,关键字为inline;
2、内联函数是一个对编译器的建议,如果函数过于复杂,编译器会不接受你的建议,而处理成普通的函数;
3、inline函数可以代替带参数的宏。

四、auto关键字(C++11新增)
数组的元素类型不能包含auto类型;
1、auto是一个类型修饰符,他会根据你给变量初始化的值的类型来决定自己是什么类型;
2、auto定义的变量必须初始化,否则不知道auto是什么类型;
3、auto可以连续定义变量,类型由第一个定义的变量决定,后续不能违背这个类型,但是可以定义对应类型的指针和引用;

注:
auto不能做函数的参数类型;
auto不能参与数组的类型;
C++11后,auto会失去原本的含义;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值