![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
c语言
文章平均质量分 55
c语言
朽木白露
只有最不虔诚的信徒,才会追寻上帝存在的证明
展开
-
C语言哈希表用法
转自:https://blog.csdn.net/nameofcsdn/article/details/107297361哈希表在头文件"uthash.h"中已经有了,只需要简单学习一下用法即可。 1,哈希结构体 #include "uthash.h"typedef struct { int key; int value; UT_hash_handle hh;} Hash;Hash *hash = NULL; 其中UT_hash_handle是头文件"uthash转载 2021-09-27 11:08:05 · 1833 阅读 · 0 评论 -
二叉树遍历
文章目录中序遍历递归栈前序遍历递归栈后序遍历递归栈层次遍历中序遍历https://leetcode-cn.com/problems/binary-tree-inorder-traversal/递归这里直接判断左右节点是否是NULL,意味着不需要将节点下移到叶子节点,在下一次递归的时候再判断,个人认为这样会好一点,虽然代码逻辑会复杂一点。递归的对象是子树,那么传递的参数主要就是根节点;递归的思路很简单:如果有左子树,就先递归左子树(因为这一步不需要保存左叶子,因此暂时不考虑);递归完左子树后,原创 2021-09-10 20:27:41 · 242 阅读 · 0 评论 -
LeetCode 502. IPO
https://leetcode-cn.com/problems/ipo/假设 力扣(LeetCode)即将开始 IPO 。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i] 。最初,你的资本为 w 。当你原创 2021-09-08 15:26:56 · 237 阅读 · 0 评论 -
堆和栈访问效率
转自:https://blog.csdn.net/qq_28098067/article/details/53219086栈分配的软件优势:栈分配算法简单,所以高效;堆分配算法相对比较复杂。栈分配的硬件优势:主要两点,cache和内存映射。如果在栈上分配小块内存,因为cache和内存映射已经建立,则效率会非常高,远远优于堆分配。如果在栈上分配大块内存,在不考虑爆栈的情况下,其实两者效率差不到哪去。因为cache命中和内存映射总是在有限的大小进行的,其在栈中分配的大块内存照样cache不转载 2021-09-08 13:38:35 · 1792 阅读 · 0 评论 -
详解C语言中volatile关键字
转自:https://blog.csdn.net/lwbeyond/article/details/7265430 volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如 果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举 例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序: short fl转载 2021-09-04 16:38:02 · 16803 阅读 · 1 评论 -
反转链表算法:指针很多,重点是怎么分析
原题目链接:https://leetcode-cn.com/problems/reverse-linked-list/解题思路示例:“1”->“2”->“3”->“4”我们先用p1,p2,p3,p4分别代表指向1,2,3,4的指针,然后来分析反转的过程是怎样进行的。尾指针清空,p1->next == NULL依次将后一个元素放在最前面一个元素的前面,p2->next = p1;p3->next = p2;p4->next = p3;返回头指针,r原创 2021-07-04 16:08:30 · 254 阅读 · 0 评论 -
c宏定义
c 宏替换变量名一部分_简述C语言宏定义的使用_传播匠新传考研的博客-CSDN博客https://blog.csdn.net/weixin_32172693/article/details/112112579C语言宏定义中的字符串替换_binglingshuang的专栏-CSDN博客https://blog.csdn.net/binglingshuang/article/details/3401005...原创 2021-04-26 17:37:35 · 285 阅读 · 0 评论 -
大小端转换
short类型:public static short ReverseUshort(short value){ return (short)((value & 0x00FFU) << 8 | (value & 0xFF00U) >> 8);}int类型:和short类型类似,只不过2个字节变成了4个字节,将 1,2,3,4字节倒序一下变成 4,3,2,1,看代码:public static int ReverseFourBytesData(int va原创 2021-01-21 14:21:52 · 342 阅读 · 0 评论 -
fread fwrite文本模式读写回车换行符 自动转换问题
fread 会把\r\n(0d0a)替换为\nfwrite 会把\n替换为\r\n(0d0a),\r\n会变成\r\r\n(0d0d0a)今天在写一个日志类,用于打印服务程序的信息。我将每一个日志信息都以单行的形式输入,所以在开头加上了回车换行符。文件是以代码如下:FILE *file = fopen(log_file_name,“a+”);if (!file)return;fwrite("\r\n",3,file);//这里不是原始代码,只用来说明问题然后用winhex软件查看了十六进制转载 2021-01-16 14:55:47 · 2142 阅读 · 0 评论 -
字符串数字互相转换:sscanf分离字符串 sprintf将数字转换为字符串
一、scanf提取字符串 字符串的输入是以空格为分割的,如果遇到需要将空格也作为内容读入字符串,则需要用以下格式:scanf("%[^\n]",str);这段语句的作用是str接收输入的字符串,直到碰到回车换行符为止,也就是回车前的内容均接收为str的内容。 比如要将three four+five six=中的three four赋值给strA,five six赋值给strB,则需要用下面的语句: scanf("%[^+]%*[+]%[^=]%*[=]");其中%*[+]的意思是忽略下一个..转载 2020-10-28 12:32:00 · 1106 阅读 · 0 评论 -
静态存储区、堆、栈之间的区别及注意事项
一、内存基本构成可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。堆区:亦称动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负转载 2020-09-21 16:21:18 · 555 阅读 · 0 评论 -
c语言模拟鼠标键盘控制电脑
转自:(直接负责的源码,可能格式混乱,只是用来防丢失)https://blog.csdn.net/liu_kan/article/details/83077355https://blog.csdn.net/nanfeibuyi/article/details/85119726模拟键盘我们用Keybd_event这个api函数,模拟鼠标按键用mouse_event函数。大家不用担心,在delphi里调用api函数是很方便的事。先介绍一下Keybd_event函数。Keybd_event能触发一个按键事转载 2020-07-25 14:59:06 · 6353 阅读 · 2 评论 -
c++数字雨屏保
c语言实现数字雨,编程环境是C-Free,使用图形库为ege,ege也可以安装在VS中。完整工程可以在这里下载:https://download.csdn.net/download/qq_45467083/11453324关于编程环境可以参考这个博客:https://blog.csdn.net/qq_45467083/article/details/97911837效果如下:可以通过上下左...原创 2020-01-19 22:34:08 · 2641 阅读 · 0 评论 -
c语言函数指针
1.在讲这个问题之前,我们要明白一个问题。就是我们为什么要把一个函数的地址作为参数传递给另一个参数。要知道在C语言中,一个函数内部是可以直接调用其他函数的,既然可以直接调用,为什么还要用这么麻烦的办法去把函数当做参数来传递呢。下面我举个例子。例如我们设计一个estimate() 的函数计算一个程序运行的时间,但不同的人估算时间的时候可能算法有所不同,算出的时间也应该不同。但我们都调用同一个est...转载 2020-01-06 20:18:18 · 318 阅读 · 1 评论 -
c语言数据结构二叉树:一颗会开花的树
既然二叉树就是一个树的样子,如果我们将它画出来,会是什么样子呢?就是这个样子。在本次工程中,使用ege图形库,配合C-Free5,将二叉树结构使用图形化的方式显示出来,似乎还比较漂亮~现在来说一下程序的整体思路,其主要就是如何将二叉树的结构图形化。使用二叉树保存树枝或树干的长度与角度,然后遍历二叉树,根据角度与长度,以及前一个树枝的末端坐标,便可以画出当前的树枝(即线段)。根据二叉树的层数...原创 2019-07-31 14:00:28 · 958 阅读 · 0 评论 -
C语言小游戏:和电脑玩21点游戏
初学C++,或者说初学面向对象的编程思想,便写了一个模拟21点游戏的程序,与电脑对弈,似乎没有感觉到电脑的无脑,换言之,虽然我用了很简单的策略判断,但在这个游戏中,电脑仍然表现出一定智能。这里先卖个关子,大家可以自己找找源代码,看看我用了什么策略。先来看看运行效果:输了,再看一个赢的:你可以在此链接下载本工程的源代码,然后直接打开exe文件先玩一下试试:点此打开网页。本次是在C-Free5...原创 2019-07-31 13:36:05 · 3812 阅读 · 0 评论 -
计算多少天后的日期
C语言:计算多少天后的日期有的时候我会想,再过个100天是几月几日呢?也许你可以翻翻日历,但是如果是1000天、10000天以后呢?为什么我们不写个小程序来专门处理这个问题呢?似乎也不是很复杂……于是这篇博客应运而生,其实计算的逻辑很简单,就是使用计算机模拟日期计数,比较有特色的地方在于switch-case的“非常规”运用——/ ** 文件名:nextdate.c* 作者:于子豪* ...原创 2019-07-30 12:28:38 · 3126 阅读 · 0 评论