Advertisement

C/C++面经总结

阅读量:

1.用#define声明一个常数,表明1年中有多少秒(忽略闰年问题)?

答案:#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

要点

A. 没有以分号结束;

B. 懂得预处理器将为你计算常数表达式的值。即60 * 60 * 24 * 365而不是31536000.

C. 考虑到了16位机将会溢出,巧妙运用了UL。

2.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个?

答案:#define MIN(A,B) ((A) <= (B) ? (A) : (B))

要点

A. 参数用括号括起来;

B. 考察能否合理运用 条件运算符 ;

3.Heap与Stack的差别?

答案:Heap是堆,Stack是栈。

Stack的空间由系统自动分配/释放,Heap上的空间手动分配/释放。

Stack空间有限,Heap是很大的自由存储区,malloc函数分配的内存空间即在堆上。

网上经典例子

int a = 0; //全局初始化区

char *p1;//全局未初始化区

void main(void)

{

int b; //栈

char s[] = "abc"; //栈

char *p2;

全部评论 (0)

还没有任何评论哟~