C
H_z_Z
这个作者很懒,什么都没留下…
展开
-
typedef和#define
typedef (int*) pINT; 以及下面这行: #define pINT2 int* 效果相同?实则不同! pINT a,b;的效果同int *a; int *b;表示定义了两个整型指针变量。 pINT2 a,b;的效果同int *a, b;表示定义了一个整型指针变量a和整型变量b。 注意:两者还有一个行尾;号的区别哦! #de...原创 2018-03-07 15:35:06 · 270 阅读 · 0 评论 -
堆和栈的区别
作者:思羽链接:https://www.zhihu.com/question/19729973/answer/13037929来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回...转载 2018-03-07 15:58:38 · 184 阅读 · 0 评论 -
malloc(0)返回值是否为空
返回指针为NULL的条件是申请一定大小内存,内存空间不够的时候。如果申请内存大小为0,还是会返回一个有效指针。会有很小的一块内存空间被分配用来维护内存,但不可读写。可认为空间大小为0。...原创 2018-03-07 18:37:30 · 895 阅读 · 0 评论 -
写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个?
写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个?-->#define MIN(X,Y) ((X)>(Y)?(Y):(X))结果分析:define只会是纯替换作用,所以X,Y均需要加括号,以防止X,Y为表达式的情况...转载 2018-03-19 15:28:32 · 8537 阅读 · 0 评论 -
给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
#define BIT3 (0x1 << 3) static int a; void set_bit3(void) { a |= BIT3; } void clear_bit3(void) { a &= ~BIT3; }转载 2018-03-19 20:14:31 · 4560 阅读 · 0 评论 -
浅析栈区和堆区内存分配的区别
http://www.cnblogs.com/houjun/p/4909413.html转载 2018-04-08 15:48:21 · 215 阅读 · 0 评论