1、对于一个频繁使用的短小函数,在c语言中应用什么实现,在c++中应用什么实现
答:c:宏定义;c++:inline内联函数
2、全局变量和局部变量的区别?
答:
1、生命周期不同:
全局变量:随主程序创建而创建,随主程序结束而销毁。
局部变量:函数或者{}括号内部,退出或执行完就销毁
2、作用域不同:
全局变量:源文件内所有函数都可以使用
局部变量:函数内部或者{}括号内部有效,只能局部使用
3、内存分配不同:
全局变量:全局数据段并且在程序运行的时候加载
局部变量:分配在堆栈里
3、在申请内存找不大足够大的内存块,malloc和new将返回NULL指针,内存申请失败,怎么处理内存耗尽?
答:直接return
4、如何判断一个操作系统是16位还是32位系统
答:
1、使用变量指针*p,sizeof(p) == 2 为16位,==4 为32位
2、unsigned int a = ~0; if( a > 65536 ) 为32位,否则 16位
5、为什么数组名做参数会改变数组内容?
答:数组名就是数组的首地址
6、析构函数和虚函数的用法和作用?
答:
析构函数:是c++特殊的类成员函数,没返回值、没参数、不能调用。在类对象执行完毕,作用是销毁并释放内存。
虚函数:是c++多态的一种表现,使用虚函数可以动态绑定,当然也会以系统开销为代价的
7、引用和指针有什么区别?
答:
引用:必须初始化;初始化后不能改变;不存在指向空值
指针:不必初始化;指针可以改变所指对象;指针可以指向空值
8、虚函数只能借助引用或者指针来达到多态的效果。
9、在c++中能否有虚构造函数?
答:不能,只能有虚析构函数。
10、重载、重写、重定义的区别?
答:
重载:类对象的同名不同参函数
重写:子类继承父类的函数
重定义:子类继承父类的虚函数