笔试/面试题
传奇代码搬运工
这个作者很懒,什么都没留下…
展开
-
不使用任何中间变量如何将a、b的值进行交换
用异或按位运算,交替三次即可实现。void swap(int *a, int *b){ *a ^= *b; *b ^= *a; *a ^= *b;}原创 2020-04-12 23:39:28 · 588 阅读 · 0 评论 -
有符号变量与无符号变量的值的转换
知识点:原码和补码,在计算机系统中,数值一律用补码来表示和存储正数的补码:与原码相同负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后加1例如,一个char类型的 -7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码 0000111按位取反为1111000;再加1,所以-7的补码是11111001。若...原创 2020-04-12 21:29:07 · 336 阅读 · 0 评论 -
关于malloc(0)返回值的一些看法
题目来自https://www.jobui.com/mianshiti/it/qianrushi/5829/以下是原文下面的代码片段的输出是什么,为什么?char *ptr;if ((ptr = (char *)malloc(0)) == NULL)puts(“Got a null pointer”);elseputs(“Got a valid pointer”);这是一个有趣...原创 2020-04-05 23:07:08 · 567 阅读 · 1 评论 -
嵌入式经典笔试题
1、堆和栈的区别堆上的空间是手动分配和释放的,栈上的空间是自动分配与释放的。栈空间是有限的,堆空间是很大的自由储存区2、全局变量与局部变量的区别作用域不同:全局变量作用域为整个程序,局部变量作用域为当前语句块。 内存存储方式:全局变量在全局数据区,局部变量储存在栈上。 生命周期不同:全局变量的生命周期跟程序一样,局部变量随着语句块的结束而结束。 当局部变量和全局变量同名...原创 2020-03-30 23:11:58 · 1220 阅读 · 0 评论