- 博客(34)
- 收藏
- 关注
原创 小小的说一下指针
A:来,给我说说什么是指针?我:啊?指针嘛,就是char*,int*等等,我用过...A:就这些吗?还有呢我:只知道这个,其它不知道了。。。。(于是,我痛定思痛,费了一番精力好好总结了一下指针。终于能让茶壶里的饺子倒出来了)...
2018-11-22 22:18:18
126
原创 关键字struct
关于struct这个关键字,下面讨论了它的内存对齐和位段的tips下面的代码是对普通结构体的内存对齐的验证:struct ss11{ char ch; int a;};void Test11(){ struct ss11 s; printf("%p\n", &s.ch); //可以对普通结构体的成员取地址 printf("%d\n", sizeof...
2018-11-20 22:54:40
509
原创 c语言中的宏
c语言中宏的用法主要有三种:①宏常量;②宏函数;③取别名。 然后宏的知识点跟好多知识都有点交集,为了彻底弄清楚,我整理出一个思维导图。...
2018-11-20 15:43:30
107
原创 关键字static和const
下面的思维导图中主要总结了关键字static修饰变量,修饰函数,修饰成员变量等的一些特点。同时也总结了const修饰变量,参数,函数的特点。 ...
2018-11-20 15:37:37
120
原创 对linux下的文件属性作了一点小结
我们在linux下,经常会用到 ls -l 这个命令。当执行该命令后,就会在标准输出打印出当前目录下的所有文件的详细属性。
2018-11-19 12:49:42
143
原创 剑指offer每日六题---------day five
剑指offer题25:复制一个随机链表RondomListNode* RandomLinkCopy(RondomListNode *head){ if (!head)return NULL;//头结点是空直接返回 RondomListNode *cur = head, *next = head->next;//由①②③变成①①②②③③,但复制出来的结点的随机指针都指向空 wh...
2018-08-20 19:01:25
195
原创 剑指offer每日六题---------day four
剑指offer题19:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,eg. 1 2 3 4 ...
2018-08-20 18:51:14
142
原创 剑指offer每日六题---------day three
剑指offer题13:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,是所有的奇数位于数组的前半部分, 所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 方法一:用辅助数组 方法二:两个奇数指针包夹着偶数,然后把这些偶数向后推一步,再把后面的一个奇数放到前面;重复步骤直到结束#include<vect...
2018-08-18 10:01:45
188
原创 剑指offer每日六题---------day two
剑指offer题7:现在要求输入一个整数n,请求出斐波那契数列的第n项。(通项公式: f(n) = f(n-1) + f(n-2))注意,f(0) = 0// 思路一:迭代循环法int Fibonacci(size_t n)//循环迭代法 //0 1 1 2 3 5 8 13 21...{ if (n < 1)return n; int tmp, acc1 = 0, ...
2018-08-17 09:41:36
176
原创 剑指offer每日六题---------day one
#include"defineNodeStruct.h" //该头文件定义了下面代码所用到的类型 https://mp.youkuaiyun.com/postedit/81742215剑指offer题1:在一个二维数组中,每一行都按照从左往右递增的顺序排序,每一列都按照从上往下递增的顺序排序。 完成一个函数,输入一个数,判断该数是否在数...
2018-08-16 15:22:37
170
原创 剑指offer定义的结点类型---------day zero
defineNodeStruct.h 该头文件定义了一些结点类型。 #pragma once//单链表链表的结点类型struct FlistNode{ int val; FlistNode *next; FlistNode(const int x) :val(x), next(0){}};//双向链表的结点类型struct ListNod...
2018-08-16 15:21:07
152
转载 孤儿进程与僵尸进程
https://www.cnblogs.com/Anker/p/3271773.html 孤儿进程与僵尸进程[总结]1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结...
2018-08-05 18:07:32
155
原创 智能指针
在介绍智能指针之前,我先来解释两个词: ①内存泄漏:由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见,并造成内存泄露。通俗的讲,是指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏的成因就不说了,因为...
2018-08-02 20:05:21
159
原创 可变参数列表与printf的实现
先来两个认知:①c语言函数参数压栈的是从右往左开始的。 ②可变参函数压参数进栈时,每个参数栈4k个字节。(k=1,2,3,4,5,6...) 有了上面的认知之后,剩下的问题就是按照我们自己的意愿去访问栈中的元素。当然了,凭我们自己90%不知道栈在哪里,不知道如何指向栈顶。那么用下面的宏就可以帮我们找到栈了 ...
2018-07-31 23:04:46
304
转载 vim多窗口编辑
本文出自:https://blog.youkuaiyun.com/shuangde800/article/details/11430659---------------------------------------------------------------------------------------------------------------------------------------...
2018-07-25 18:19:14
215
原创 线性表之顺序表
1. 顺序表是在计算机内存中以数组的形式保存的线性表。2. 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表3. 优点:存取速度高效,通过下标来直接存储 缺点:插入和删除比较慢...
2018-07-24 10:37:35
139
原创 主存与cache的地址映射
1. cache是一种高速缓冲存储器,是为了解决cpu和主存之间速度不匹配而采用的一项重要技术。其原理基于程序运行中具有空间局部性和时间局部性特征。cache是介于cpu和主存之间的小容量存储器,由高速的SRAM组成。 2.个人感觉需要在这里提一下的知识。 (1)存储单元的编址方式:①字编址方式 ②字节编址方式 存储字节:一个存储字节只有8位。当按字节编址方式时,一个存储单元就...
2018-04-28 10:43:39
10228
3
原创 模拟实现STL中list容器
mylist.h#pragma once#include"ReverseIterator.h"template<class T>struct listnode //链表的节点{ T _data; listnode<T> *_next; listnode<T> *_prev; listnode(const T& data) :_...
2018-04-20 18:34:08
166
原创 一万种方法计算32位整型数中的'1'的个数
方法一: 自然智慧就可以想到的办法,没什么好说的,直接上代码了。void bit_count1(unsigned int num)//②可以计算所有整数"1"的个数(循环){ unsigned int count = 0; for (size_t i = 0; i < 8 * sizeof(num); ++i) { if (num & 1 << i) count++;
2018-04-18 15:38:10
2933
原创 c语言实现通讯录
动态分配内存版本实现的通讯录。 没什么好说的,就只是增删查改之类的功能,直接上代码了#define _CRT_SECURE_NO_WARNINGS#include<stdio.h> #include<string.h> #include<Windows.h>#define MAXN 20#define MAXS 5...
2018-04-17 13:09:30
475
1
原创 huffman树-------文件压缩
哈夫曼树(霍夫曼树)又称为最优树.1、路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。2、结点的权及带权路径长度若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积3、树的带权路径长度树的带权路径长度规定为所有叶子结点的带权...
2018-04-16 12:35:45
280
原创 atof 和atoi 的模拟实现
atof 和 atoi 其实就是解析一段字符串。 下面是将字符串解析成浮点数需要考虑的格式:(注意,下面考虑的所有东西可能不存在字符串中)①删除无意义的空格②考虑该字符串的符号③解析第一段正文(假如遇到不合法字符,那么解析到此结束;否则继续往下解析)④看是否有小数点⑤解析第二段正文⑥看是否存在e/E⑦假如存在e/E,那么就开始判断指数的符号和指数的大小double my...
2018-04-15 12:52:03
241
原创 简单的light off 游戏
just for fun 系列!#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<time.h>#include<Windows.h>#define ROW 7#define COL 7void Initmap(char tic[][COL], int row, int col){ ...
2018-04-13 10:41:13
374
原创 简单的2048游戏
just for fun 系列。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<math.h>#include<CoreWindow.h>#define ROW 4#define COL 4unsigned int moves = 0;...
2018-04-13 10:34:35
222
原创 简单的3*3游戏拼图
just for fun! 没什么好讲的,直接上代码以及程序结果。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<Windows.h>#include<time.h>#include<string.h> #define ROW 5#define COL 5#d...
2018-04-13 10:28:48
2069
原创 my_ctype.h的模拟
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。 美国标准信息交换代码是由美国国家标准学会(American National Standard ...
2018-04-13 10:17:29
184
原创 KMP等字符串匹配算法
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<CoreWindow.h>//①BF算法 ②KMP ③BM ④Sundy//①一般的子串查找算法(BF算法)char *my_strstr(const char *s1, const char *s2)//确定字符串s2在字符串s1中第一次出现...
2018-04-12 21:41:48
180
原创 c实现的printf函数
#define _CRT_SECURE_NO_WARNINGS#includeusing namespace std;#include#includevoid f1(size_t i, char ch){int base = 10;static char arr[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8
2017-12-18 12:29:30
316
原创 位操作的tips
①任何整数与零异或都是自己本身。②二进制序列从第零位开始起算(高序列③x &(1④x &~(1⑤x &~((1⑥x |(1⑦x |((1⑧x ^(1⑨x ^((1十,x &(x-1) 从低序列起,将某二进制序列中第一个1置0
2017-10-30 19:34:26
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人