1. C语言指针基础

C语言的指针设计是一致和优雅的。C语言中“指针(pointer)”就是地址(所以不能用普通整数储存地址),“指针变量(pointer variable)”是存储地址的变量。一个指针变量,只能指向一个特定类型的变量,比如整数、浮点数、字符或者指针。

Initiate a pointer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int tmp1 = 1, tmp2;

/* "=" does not mean "assignment", it just means "initiating" */
/* p is the address of tmp1, *p is equal to the value of tmp1*/
int *p = &tmp1;

int *q;
q = &tmp2;

/* p points to tmp1, q points to tmp2, now the value of tmp2 is 1*/
*p = *q;

/* p and q now both points to tmp1*/
q = p;

关于Docker的安装和使用,有详细的文档可供参考。本文收集一些有趣和重要的记录。

1. 普通用户权限执行Docker

创建docker用户组并添加普通用户。

1
2
$ sudo groupadd docker
$ sudo usermod -aG docker myUserName

注销后,再次登录即可。

XPath提供了一种对XML节点、节点属性和内容快速查询的规则。在各种编程语言中都有实现,比如C语言的libxml2和对应的R包 xml2

1. 查询规则

XPath查询集中在三个对象:节点、节点属性和节点内容。

1.1 选择节点

  • /nodeA/nodeB:nodeA为根节点,nodeA下的所有nodeB节点;等价于nodeB

  • //nodeB:所有nodeB节点,在R包xml2中(比如函数xml_find_all()),//nodeB搜索范围是整个文档,忽略当前节点;而.//nodeB搜索范围是当前节点之下。

Spacemacs结合了Vim和Emacs,而且定制了各种好用的设置,极大地减轻了Emacs的配置负担。推荐使用hybrid模式,这样浏览代码时可以使用Vim快捷键,进入Insert mode后使用Emacs快捷键。hybrid模式还有一个好处,编辑时方便汉字输入。Vim模式的先导键是SPC,在Emacs模式下是M-m