
C语言
NjustMEMS_ZJ
砥砺前行
展开
-
Ctags, Cscope and Vim
Ctags and expecially Cscope in combination with Vim can really boost productivity when working with home-grown and foreign source-trees.Both tools basically generate references out of source-files, which can be used to locate and cross-reference source-sy原创 2022-05-15 22:06:06 · 403 阅读 · 0 评论 -
【文章收藏】Linux
【文章收藏】Linux原创 2022-04-28 09:42:29 · 410 阅读 · 5 评论 -
并查集模板
int UFFind(int *ufRoot, int a){ if (ufRoot[a] < 0) { return a; } ufRoot[a] = UFFind(ufRoot, ufRoot[a]); // 路径压缩 return ufRoot[a];}void UFUnion(int *ufRoot, int a, int b) { int rtA = UFFind(ufRoot, a); int rtB = UFFind原创 2021-07-18 23:15:11 · 232 阅读 · 0 评论 -
【Linux】/proc/sysrq-trigger使用说明
立即关闭计算机echo “o” > /proc/sysrq-trigger导出内存分配的信息 (可以用/var/log/message 查看)echo “m” > /proc/sysrq-trigger导出当前CPU寄存器信息和标志位的信息echo “p” > /proc/sysrq-trigger导出线程状态信息echo “t” > /proc/sysrq-trigger故意让系统崩溃echo “c” > /proc/sysrq-trigger立即重新挂载原创 2021-05-20 20:01:11 · 942 阅读 · 0 评论 -
【LeetCode】【C】321. 拼接最大数时--隔两个月两次刷的代码
前言LeetCode做题的数量多不如质量高,在基本算法都掌握的基础上,关键是能够掌握寻找答案的思路以及以及一些细节上的技巧性处理。通过两次刷这道题,最后对比代码可以发现,在方向对的前提下,两次的编码细节是不同的,有些地方用了不同的处理思想,第一次解答这个题是看了答案之后做的,有些地方潜移默化用了答案里的技巧,当时没有察觉,当自己再次刷题时,有可能会出现一些自己的土方法,通过对比,才能将更好的方法吸收。话不多说,上代码第一次(查看答案后的编码)static inline int MAX(int x,原创 2021-04-05 21:14:12 · 166 阅读 · 0 评论 -
【C】对快速排序与归并排序的一些感悟
深入理解快速排序与归并排序学过算法与数据结构的人都知道,几乎所有教程都会讲排序,然而实际编程中并不会真正的手写排序算法,慢慢的大家是否会产生疑问,是不是只要了解各种排序算法的特点就好,不必过分执着于代码,然而最近,我对此有了更深刻的认识。各种排序算法,实际深层次代表了不同的编程思想,并且好的实现方式,还运用了一些有用的编程技巧,这才是实际学习过程中真正需要掌握的东西,比如二分、递归等等。细细把玩之后,会产生一种看山是山 看山不是山 看山还是山的感觉。首先,对于各种排序算法,网上有非常多的教程,在此我原创 2021-02-01 19:09:20 · 372 阅读 · 0 评论 -
【C】LeetCode中堆的使用
将数组调整成最大堆【数组中的第K个最大元素】void MaxHeapModify(int *heap, int heapSize, int curPos){ int left = curPos * 2 + 1; int right = curPos * 2 + 2; int tmpNodeVal = heap[curPos]; int aimPos = curPos; if (left < heapSize && heap[left] &g原创 2020-12-13 22:40:05 · 180 阅读 · 0 评论 -
【C】二叉树打印
对于LeetCode练习时,有时需要直观的将树打印,提供如下demo供参考#include "stdio.h"#include "string.h"struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right;};int *ArrIn(int *pArrSize);struct TreeNode *TreeIn(int *arr, int arrSize, int curIndex);原创 2020-12-13 16:25:55 · 1277 阅读 · 0 评论 -
【C】C语言中的设计模式
目录前言继承、封装、多态前言偶然在网上看到C语言设计模式的文章,觉得很有用,在此开一篇连载,将自己学到的东西给大家展示下,希望对大家有用继承、封装、多态(1)继承性typedef struct _parent{ int data_parent; }Parent; typedef struct _Child{ struct _parent parent; ...原创 2019-10-14 15:16:59 · 2311 阅读 · 0 评论 -
【C】从内存出发理解C语言变量作用域与生命周期
目录1 内存分区1.1 代码区1.2 已初始化全局变量/静态变量/常量(data区)1.3 未初始化全局变量/静态变量(bss区)1.4 栈区(stack)1.5 堆区(heap)2 代码演示3 生命周期1 内存分区C源代码进过预处理、编译、汇编和链接4步生成一个可执行程序。程序在没有运行之前,也就是说程序没有被加载到内存前,可执行程序内部已经分好3段信息,分别是代码区(text)、数据区(...原创 2019-08-28 15:39:02 · 771 阅读 · 0 评论 -
【C】int main(int argc, char *argv[])中argc与argv的含义
argc : main执行时参数的数量,默认为1argv : main执行时输入的每个字符串,第一个默认为程序的路径可以做下面一个例子很直观的感受下 1 #include "stdio.h" 2 int main(int argc, char *argv[]) 3 { 4 printf("%d \r\n",argc); 5 for (int i = ...原创 2020-02-24 21:58:43 · 651 阅读 · 0 评论