
C/C++
文章平均质量分 67
SELF_IMPR小灰
人生最清晰的脚印,是印在最泥泞的路上
展开
-
链表反转-数据结构
分别设置三个指针。第一个指针保持结果,第二个指针指向当前的节点,第三个指针保存下一个节点void reverseLinkList(LinkList *head){ Linklist *p1,*p2,*p3; if(head == NULL) return 0; p1 = head; p2 = p1 -> next; while(p2) { p3= p2 -> next; p2 -> next = p1; p1 = p2; p2 = p3; } ret原创 2016-12-14 22:54:22 · 1429 阅读 · 0 评论 -
整数数组中,每个元素均出现两次,除了一个元素例外,如何找出这个元素?能否设计一个线性时间的算法,且不需要额外的存储空间?
整数数组中,每个元素均出现两次,除了一个元素例外,如何找出这个元素?能否设计一个线性时间的算法,且不需要额外的存储空间? int singleNumber(int arr[], int n){ printf("n = %d\n",n); int result = 0; for(int i=0; i < n; i++) { result ^= arr[i]; } r原创 2016-12-10 20:46:28 · 1803 阅读 · 0 评论 -
字符串匹配算法的实现
为了保持自己的编程能力的不断提升,平时还是要多注意培养自己思考问题以及自己的动手能力,每次抽空记录下自己平常没事写的程序,留待以后碰到好的方法再进行修改,也算是不断的提升自己 今天要实现的算法就是字符串匹配算法,我这种实现方法是直接的暴力匹配算法,当然还有经典的KMP算法,但是自己还没有学会,所以留待以后再补充吧好了,废话不多说了,直接上代码/*字符串匹配算法*/#includ原创 2016-12-10 19:48:49 · 1090 阅读 · 0 评论 -
c语言验证哥德巴赫猜想
什么是哥德巴赫猜想,哥德巴赫猜想就是,任一大于2的偶数都可以写成两个素数之和,那么下面我们就用c语言去验证这种猜想原创 2016-11-18 21:14:55 · 12881 阅读 · 1 评论 -
如何判断CPU是大端还是小端模式
在ARM体系中,每个字单元包含4个字节单元或者两个半字单元。在字单元中,4个字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式:big-endian和little-endian格式。在小端模式中,低位字节放在低地址,高位字节放在高地址;在大端模式中,低位字节放在高地址,高位字节放在低地址。在C语言中,不同于结构体,共用体(联合体)中的几种不同类型的变量存放在同一段内存单元中。原创 2014-04-04 17:12:46 · 1786 阅读 · 0 评论 -
排序算法
突然发现好久没有写博客了,最近工作一直在忙,或许这只是个接口吧,其实是有点懒了,为了鞭策自己不断的向前,还是要坚持的写下去。最近碰到一些算法问题,比如排序,发现等到用的时候却突然遗忘了,我想这就是学会了但没有进行总结的原因,这篇文章就对排序算法慢慢的进行总结和回顾吧。1、插入排序算法插入排序的基本思想是,经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L[i]插入L[1.原创 2014-04-02 15:30:20 · 1355 阅读 · 0 评论 -
内存字节对齐问题
刚才工作的时候跟一同事突然问起内存对齐问题,但是自己突然又想不起来,关于内存字节对齐,我想大家都一样,看了忘、然后下次再碰到的时候还得继续查,所以比较苦恼!下面我就根据自己的总结来说下这个内存原创 2013-10-30 19:38:57 · 1738 阅读 · 0 评论 -
strcpy和memcpy函数的深入剖析
上面的文章已经为讲解了strcpy和memcpy函数的区别,但是后来通过验证,发现两个函数实现的代码写的有各种漏洞,所以在此继续深入的理解去解析这两个函数的实现。首先strcpy函数的实现,上篇文章中的代码实现如下:char *strcpy(char *dest, const char *src) // 实现src到dest的复制{ if ((src == NULL) || (dest == NULL)) //判断参数src和dest的有效性 { return NULL;原创 2013-10-28 19:59:06 · 1831 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。Memcpy的原型是:void *memcpy( void *dest, const void *src, size_t原创 2013-09-05 14:08:23 · 1143 阅读 · 0 评论 -
C和指针 学习笔记—第3章
第三章 数据 1、变量的三个属性:作用域、链接属性和存储类型(这三个属性决定了一个变量的“可视性”(也就是它可以在什么地方使用)和“生命期”(它的值将保持多久))。原创 2013-09-01 11:28:24 · 1163 阅读 · 0 评论 -
C和指针 学习笔记—第1-2章
C和指针这本经典著作,最近开始学习,然后想与大家共享下,希望共同进步!网络的力量是强大的,会碰撞出思想的火花来! 第一章 快速上手1、要从逻辑上删除一段C代码,更好的办法是使用#if指令:#if 0statements#endif在 #if 和 #endif 之间的程序段就可以有效地从程序中去除,即使这段代码之间原先存在注释也无妨2、关于scanf返回值的问题 scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#原创 2013-08-28 10:04:03 · 1392 阅读 · 0 评论 -
一个进程在内存中的布局
对于一个完整的程序,在内存中分布情况如下图: 值得一提的是:在C#中struct存放在栈区,class存放在堆区,所以一般struct要比class要快的。 堆和栈的比较表(仅针对C++) 栈(Stack)堆(Heap)申请方式由OS自动分配。例如在函数声明原创 2013-08-14 14:16:01 · 1137 阅读 · 0 评论