![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
gilr
梅花香自苦寒来,
展开
-
全面了解setjmp和longjmp
全面了解setjmp和longjmp goto语句是面向过程与面向结构化程序语言中,进行异常处理编程的最原始的支持形式。后来为了更好地、更方便地支持异常处理编程机制,使得程序员在C语言开发的程序中,能写出更高效、更友善的带有异常处理机制的代码模块来。于是,C语言中出现了一种更优雅的异常处理机制,那就是setjmp()函数与longjmp()函数。 实际上,这种异常处理的机制不是C语言 中自身的一转载 2017-04-10 17:39:33 · 854 阅读 · 0 评论 -
合并两个有序链表--实现1+2+3+....+n,时间复杂度为O(1)
1、合并两个有序链表,合并以后的链表依旧有效 C语言实现 链表结点定义如下:typedef int DataType; typedef struct Node { DataType _data; struct Node* _pNext; }Node,*PNode;实现代码:void InitList(PNode* pHead) //初始化单链表 { assert(pHea原创 2017-07-14 16:19:01 · 3500 阅读 · 0 评论 -
链表面试题/逆置/反转单链表+查找单链表的倒数第k个节点
一、逆置/反转单链表 逆置一个单链表和从尾到头打印不一样,打印不改变节点的位置,只是将数据反着打印一遍,而逆置就是要改变节点的位置。 可以先创建一个空节点,然后从第一个开始每次在单链表上拿一个节点,前插给创建的节点,单链表的头结点往后移,创建的新节点往前移。当单链表为空的时候,也就逆置完了。 这里面我们需要三个指针分别是cur,用来顺序遍历整个链表,nextNode指针用来保存逆置的头结原创 2017-07-15 16:41:49 · 728 阅读 · 0 评论 -
C/计算一个整数二进制位中1的个数
计算一个整数二进制位中1的个数。要求效率尽可能的高。且能正确求正数和负数的二进制中1的个数。 代码:#pragma once #include<stdio.h> #include<stdlib.h>//计算一个整数二进制位中1的个数。要求效率尽可能的高。且能正确求正数和负数的二进制中1的个数。 //32位,0 --00000000 00000000 00000000 00000000 //原创 2017-07-21 11:08:06 · 371 阅读 · 0 评论 -
算法---面试题/--求N的阶乘N!中末尾0的个数
】–给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0 分析: 1)、如果N是一个很大的数,它的阶乘可能已超出计算机所能计算的最大范围,因此可能会导致溢出。我们换个角度想, N!=1×2×3×4×5×6×··· ×N ,我们可以对N!进行分解质因数,即 N!=(2^x)×(3^y)×(5^z) ·········· 可以看到原创 2017-07-22 14:35:27 · 1420 阅读 · 0 评论 -
预处理/内联函数和宏定义
面试题:内联函数和宏的差别是什么? 答: 内联函数和普通函数相比可以加快程序运行的速度,因为不需要中断调用,在编译的时候内联函数可以直接被镶嵌到目标代码中。而宏只是一个简单的替换。 1. 内联函数要做参数类型检查,这是内联函数跟宏相比的优势。 2. inline 是指嵌入代码,就是在调用函数的地方不是跳转,而是把代码直接写到那里去。对于短小的代码来说inline 增加空间消耗换来的是效率提高原创 2017-09-05 16:55:12 · 447 阅读 · 0 评论