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,作为输出型参数