c+primer 学习笔记 6

函数返回不能是数组或者函数


在块中创建,到达快末尾销毁的是自动变量(如形参)


形参的顶层const会被忽略。定义 f(int)和f(const int)重复定义,形参相同


使用引用而非常量引用会极大限制传入类型,常量引用只需要能转换成相同类型即可,非常量则必须相同。如f(const string&)可以传入“a”,而f(string&)不行


main(int,char**) 使用时argc【0】保存程序的名字,正式的参数从1开始


可变形参3种方式:initializer_list,可变参数末班,省略符

initializer_list中的变量永远是const,初始化方式initializer_list a{“a”,“b”}


返回一个数组的指针 int (*f(int a))[10] ,其中 (*f(int a))表示 返回值可以解引用

或者 auto f(int a)-》int(*)【10】 尾指返回类型

或者 decltype,但如果参数是数组,返回的参数是数组,而不是指针


调用重载函数有三个结果:最佳匹配,无匹配,二义性匹配


给定的作用域只能赋予一次默认实参,先申明了 string screen(int,int=5),就不能 string screen(int,int=6),但可以tring screen(int=4,int=5)

局部变量不能作为默认实参,但其他能转换为形参类型的都可以


constexpr返回的不一定是常量


定义了一些全局变量

cout << __FILE__ << endl << __FUNCTION__ << endl << __LINE__ << endl << __DATE__ << endl << __TIME__ << endl;


函数匹配,先找到候选函数(名字和可见),在可行函数(参数类型和数量相等),寻找最佳匹配(每个实参的匹配都不劣于其他可行函数或者至少有一个实参的匹配由于其他 函数)

匹配优先级:1.实参和形参相同,实参从数组或函数转为对应指针,实参添加或去除顶层const

2.通过const转换实现

3.类型提升

4.算术类型或者指针转换

5、类类型转换


函数名可以当指针使用,指针无需解引用可直接调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值