分类目录归档:未分类

C语言指针笔记

C语言指针是难点,是必须要攻克的堡垒。

看C语言的资料,指针是绕不过去的,这里记录自己对指针的理解。

一、感性认识指针。
0、有如下C代码,存为point.c文件

#include <stdio.h>

int main()
{
	int num = 1;
	int *point;

	point = &num;

	// %p表示输出地址
	printf("&num = %p | point = %p | *point = %d \n", &num, point, *point);
}

继续阅读

编译器cc、CC、gcc、g++区别

看C语言经典教材《C程序设计语言》中,Linux下编译C代码用的是cc, 广为人知的C编译器的gcc, 还有CC、g++那么有啥差异呢

一、cc是Unix下C语言编译器,是c compiler的缩写。
cc是付费的。所以Unix的两个孩子Linux和Mac OS上的cc都是软连接。
0、Linux下(这里测试用的是Centos)

[root@izj6cfhaw27k49x8usszs3z ~]# which cc
/usr/bin/cc
[root@izj6cfhaw27k49x8usszs3z ~]# ls -l /usr/bin/cc
lrwxrwxrwx 1 root root 3 Jul 22  2018 /usr/bin/cc -> gcc
[root@izj6cfhaw27k49x8usszs3z ~]# which gcc
/usr/bin/gcc

可见,cc是gcc的软连接
继续阅读

PHP生成二维码传到页面的坑

PHP生成二维码

最近做页面保存长图的功能,长图底部需要附带页面地址二维码,之前没搞过二维码相关的实现,在Google上搜索一番,发现了两个现有的轮子phpqrcode扩展和qr-code扩展。

对比发现phpqrcode很多年没有维护了,最终选择了qr-code。
注:如果使用phpqrcode可以参考PHP基于phpqrcode类生成二维码

使用qr-code生成二维码很容易,参考这篇文章PHP生成二维码
继续阅读

堆及堆排序PHP实现

什么是堆

堆是一种数据结构,特殊的树形数据结构。常见的堆有二叉堆、二项式堆、斐波拉契堆等。
堆这种数据结构主要用来实现两个功能:堆排序和优先队列。

细说二叉堆

这里细说的堆排序使用的是二叉堆,那么二叉堆是什么样的呢
二叉堆是一颗完全二叉树(维基百科提到还有可能是近似完全二叉树,很不理解),节点和双亲节点维持着固定的关系,要么节点的值都大于双亲节点,要么节点的值都小于双亲节点,并且每个节点的左右子树都是二叉堆。
特点:
0、节点都大于双亲节点的二叉堆叫大顶堆。
1、节点都小于双亲节点的二叉堆叫小顶堆。
2、二叉堆一般用一维数组来存储。
3、二叉堆一个节点的左右孩子没有顺序。
4、有n个元素的二叉堆,最后一个非叶节点为n/2 -1
继续阅读

H5页面生成长图实践总结

最近这一两年,长图分享突然悄无声息的兴起了。刚在产品上增加了这一功能,发现确实是一种极好的分享传播方式。
生成的效果图太长,下拉在文末可以查看到

结合之前的调研,以及尝试走不通的路,以下整理了这个功能点相关的方案,希望提供你有用的参考。
继续阅读

浅谈Trie

提到敏感词过滤,经过简单思考,你没有想到Trie的话,那么你就不要思考了,这篇文章很适合你。如果你想到了,这篇文章也不失一篇很好的参考。

有经验的开发者都会说到用字典树来实现敏感词检测过滤等功能,字典树即本文所谈论的对象Trie。

他的别名除了字典树,还有很多:前缀树、单词查找树、键树。跟很多人一样,我也格外喜欢前缀树(Prefix Tree)这个昵称。
继续阅读

Hive和JSON_UNESCAPED_UNICODE

这篇记录是为了纪念自己的无知和自以为是。

给数据部门提供了一个json格式的HTTP接口, 直接使用php函数json_encode($data)处理数据,返回的数据中包含中文,结构如下:

echo json_encode($data);

{"code":1000,"msg":"succ","data":{"list":[{"pid":"6","video_keys":"\u90fd\u633a\u597d","type":"1"},{"pid":"5","video_keys":"\u7535\u89c6\u5267\u77e5\u5426\u77e5\u5426\u5e94\u662f\u7eff\u80a5\u7ea2\u7626","type":"1"}],"total":6}}

对方的技术希望返回的数据直接是汉字,我自己请求了一遍接口, 因为Chrome装有json解析插件JSONView,curl请求也使用了json解析插件jq, 都格式化好了,看到的结果如下:
继续阅读

梦回河西走廊

19年春节去河洛和开封走了走,穿梭在这片曾经为多朝都城的地方,不仅感概历史不再是教科书上简洁的文字,不再是史书上丰富的故事,历史是脚下实实在在的土地,历史是曾经缓慢流过这里的一段段时光。
继续阅读

CSRF跨站请求伪造

上篇文章总结了遇到过的一个XSS漏洞问题,这次顺便写写自己了解的CSRF。

CSRF是Cross-site request forgery的缩写,中文的世界一般说法是跨站请求伪造。简单地说,就是黑客伪造了一个目标网站的地址,欺骗用户去点击用浏览器打开这个地址,如果用户登陆了这个网站,就可以绕过后台用户身份验证,执行一些操作。
继续阅读

压测工具之ab

一、介绍
0、导语
最早接触的压测工具就是ab, ab是ApacheBench的简称,是Apache HTTP服务器基准测试工具,当然也可以测试其他服务器。

1、安装
Linux和Mac系统一般自带Apache, 所以可以直接在终端使用ab命令。Windows系统或其他没有安装的系统,请自行安装。

2、ab参数
ab的具体描述和参数,请参考官网ab, 或者直接man ab查看。
继续阅读