栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > C++面试题库

C++编程基础

C++编程基础

1. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个
#define MIN(A,B) ((A) <= (B) (A) : (B)) 2.宏定义得到一个数组所含的元素个数 #define ARR_SIZE(a)(sizeof((a))/sizeof((a[0]))) 3. 用宏定义得到一个字的高位和低位字节 #define WORD_LO(XXX)((byte)((word)(xxx)&255))#define WORD_HI(XXX)((byte)((word)(xxx)>>8))
4. 内联函数与宏有什么区别
参考答案:内联函数在编译时展开,宏在预编译时展开
在编译的时候内联函数可以直接被嵌入到目标代码中,而宏只是一个简单的文本替换
内联函数可以完成诸如类型检测、语句是否正确等编译功能,宏就不具备这样的功能
inline函数是函数,宏不是函数。
宏在定义时要小心处理宏参数(一般情况把参数用括号括起来),否则容易出现二义性。
5. 构体(struct)和联合体(union)的区别?
参考答案:struct可以定义一个包含多个不同变量的类型,每一个变量在内存中占有自己独立的内存空间,可以同时存储不同类型的数据。
union也可以定义一个包含多个不同变量类型,但这些变量只共有同一个内存空间,每次只能使用其中的一种变量存储数据。
6. C++中的4种类型转换方式
参考答案:static_cast、dynamic_cast、reinterpret_cast、和const_cast。
7. Heap与stack的差别
参考答案:stack是栈,Heap是堆。
Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。
Stack空间有限,Heap是很大的自由存储区
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/265827.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号