1 / 4
文档名称:

C基础面试题.doc

格式:doc   大小:69KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C基础面试题.doc

上传人:ttteee8 2019/11/30 文件大小:69 KB

下载得到文件列表

C基础面试题.doc

文档介绍

文档介绍:析构函数和虚函数的用法和作用?析构函数的作用是当对象生命期结束时释放对象所占用的资源。析构函数用法:析构函数是特殊的类成员函数它的名字和类名相同,没冇返回值,没冇参数不能随意调用也没冇重载。只是在类对象生命期结束时有系统自动调用。虚函数用在继承屮,当在派生类屮需要重新定义基类的函数时需要在基类中将该函数声明为虚函数,作用为使程序支持动态联遍。堆和栈的区别栈(stack):曲编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆:一般由程序员分配释放,若不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式类似。头文件的作用是什么?通过头文件來调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需耍按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库屮捉取出相应的代码。头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。ttinclude〈>和#€16“f订ename,h”有什么区别对于^include〈>,,对于ttinclude“filename,h”,) 可以定义const常量b) Const可以修饰函数的参数、返冋值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。在C卄程序中调用被C编译器编译后的函数,为什么要加extern ?C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为:voidfee(intx,inty);该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_intZ类的名字。C++提供了C连接交换指定符号extern 來解决名字匹配的问题。C++里面是不是所有的动作都是mainO引起的?如果不是,请举例在运行C++程序时,通常从main()函数开始执行。因此如果没冇main(),程序将不完整,编译器将指出未定义mainO函数。例外情况:如,在windows编程中,可以编写一个动态连接库(DLL)模块,这是其他windows程序可以使用的代码。由于DLL模块不是独立的程序,因此不需耍mainOo用于专用环境的程序一一如机器人中的控制器芯片一一可能不需要mainO,但常规的独立程序都需要mainO・变量的声明和定义有什么区别从编译原理上来说,声明是仅仅告诉编译器,冇个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。8・C中malloc与new的区别new是C++中的操作符,malloc是C中的一个函数;new不上是分配内存,而且会调用类的构造函数,同理delete会调用类析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数。内存泄露对Tmalloc或者new都可以检查岀来的,区别在T*new可以指明那个文件的那一行,而malloc没有