笔试
为了这一刻-我也有拼命练习
这个作者很懒,什么都没留下…
展开
-
计算一个整数,转换成二进制,里面有多少个1
计算一个整数,转换成二进制,里面有多少个1解法1:右移 & 1int numberof1(int i){ int count = 0; while(n) { if (n & 1) count ++; n = n >> 1; } rerutn count;}缺陷是: 当该数为负数,例如0x8000000,右移不是得到0x40000000,而是0xc000...原创 2018-07-14 21:24:47 · 4188 阅读 · 1 评论 -
数据结构之链表程序解析
/** 此文件是链表的学习知识:* 内容参考《大话数据结构》和博客 https://www.cnblogs.com/leaver/p/6718421.html* 链表的基本单位是节点,节点包含俩部分的内容,一个是数据,一个是指向下一个节点的指针。*//* 线性表的单链表存储结构 */typedef int ElemType;/* (一)、数据结构 */typedef struct Node{Ele...原创 2018-07-16 10:10:08 · 842 阅读 · 0 评论 -
C语言的编译链接过程详解
学过C语言的人都应该知道,我们所编辑的C语言程序是不能直接放到机器上运行的,它只不过是一个带".c"后缀的文件(也称为源代码)而已,需要经过一定的处理才能转换成机器上可运行的可执行文件。我们将对C语言的这种处理过程称为编译与链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织最终形成可执行代码的过程。编译和链接的过程图解...转载 2018-08-04 11:43:31 · 4004 阅读 · 0 评论 -
bss段 text段 data段 栈区 堆区
一个程序一般分为3段:text段,data段,bss段text段:就是放程序代码的,编译时确定,只读,data段:存放在编译阶段(而非运行时)就能确定的数据,可读可写就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域bss段:定义而没有赋初值的全局变量和静态变量,放在这个区域这个够不够清楚呢?堆栈就是栈的简称。堆和栈的区别一、...转载 2018-09-08 17:57:16 · 359 阅读 · 0 评论 -
C语言memcpy之内存覆盖
在实现memcpy函数的时候,我们说过要考虑内存覆盖的问题,到底什么是内存覆盖呢,他的出现对程序到底有什么影响呢?我们又要如何去解决这种问题的发生?首先先看一般人经常实现的memcpy函数:#include<stdio.h>#include<assert.h>#include<string.h> void *my_memcpy(vo...转载 2018-09-03 20:03:53 · 1393 阅读 · 0 评论