c++基础篇面试问题(一)

1.什么是函数重载

函数重载:简单来说就是函数名相同,函数的参数不同(类型,数量,顺序不同),返回值不同不算函数重载。

2.c++中是如何支持函数重载的?为什么c语言不支持?

 c编译过程:预处理--->头文件展开/宏替换/条件编译/去掉注释----test.i

                   编译---->检查语法,生成汇编代码----test.s

                   汇编---->汇编代码转化成二进制机器码----test.o

                   链接--->将两个文件链接到一起,生成可执行文件

 c++中函数名的修饰规则使相同的函数名参数不同在test.o中表示 就不同,但是在c语言中是相同的,无法区分

3.extern c 的作用

1,c++代码调用c语言代码时使用

2,c++执行时通过c语言的编译方式进行执行---比如函数的重载

3,在c语言代码中调用c++的函数

4.指针和引用的区别  

指针与引用的区别在于:

指针是一个实体变量,而引用只是一个别名,本身不占用内存空间。

指针可以改变指向,而引用只能引用同一个变量。

指针可以为空(NULL),而引用必须初始化。

指针可以有多级指针,而引用只有一级。

指针进行运算时,需要使用指针运算符(例如 * 和 ->),而引用不需要。

指针和引用取别名时,权限可以缩小,不可以放大(例如:元素是只读,引用不能可读可写,只是赋值可以)

引用比指针使用更安全

5.传值和传引用

传值都会产生一个拷贝变量,这个临时变量具有常性,在c++中临时变量都是const类型,传引用就是一个别名。 

一个函数如果要使用引用返回,,返回变量出了这个函数的作用域还存在,就可以使用引用返回,否则就不安全----可以加static延长生命周期。

使用引用返回的好处:少创建拷贝一个临时对象,提高效率。

1,作为输出型参数

2,作返回值 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值