2019年度总结
新的一年,应继续保持学习,计划
vue
深入学习,之前还是学习的不够深入TypeScript
也应该入手了,都0202
年了,总不能还不会ts
吧- 走进后端,
koa
,eggjs
等学一个 - 不挂科
- 不挂科
- 不挂科
新的一年,应继续保持学习,计划
vue
深入学习,之前还是学习的不够深入TypeScript
也应该入手了,都 0202
年了,总不能还不会 ts
吧koa
, eggjs
等学一个开启管理员模式1
Start-Process powershell -verb runAs
删除文件夹1
rm -r -f [文件夹名称]
去哪儿网项目链接
1 | module.exports = { |
直接在项目根目录新建 vue.config.js
1
2
3
4
5
6
7
8
9
10
11
12const path = require('path')
module.exports = {
configureWebpack: {
resolve: {
alias: {
'styles': path.resolve('src/assets/styles')
}
}
}
}
设备 | rpx换算px (屏幕宽度/750) | px换算rpx (750/屏幕宽度) |
---|---|---|
iPhone5 | 1rpx = 0.42px | 1px = 2.34rpx |
iPhone6 | 1rpx = 0.5px | 1px = 2rpx |
iPhone6 Plus | 1rpx = 0.552px | 1px = 1.81rpx |
详情查看官方文档
组件
API
文档
bindtap
或者bindtap(1)
都会会直接当成函数名直接调用包括括号
1 | <view bindtap="bdtap" data-info="1"></view> |
js
代码,也不能调用小程序提供的API
IOS
设备比JavaScript
运行环境快2~20倍,而在Android
和JavaScript
环境运行效率无差异wx:if 控制元素的渲染,为惰性渲染,更高的切换消耗
hidden 始终会渲染,只是简单的控制显示和隐藏,更高的出事渲染消耗
1 | // 相当于 v-if |
相当于vue中的
template
,只做包括,当前标签不会渲染出来,内容会渲染
1 | <block></block> |
类似于
Vue
中的watch
,支持版本2.6.1以上
1 | Component({ |
1 | Component({ |
**
监听所有子数据字段的变化1 | Component({ |
1 | { |
base64
1 | const fileManger = wx.getFileSystemManger() |
去除
navigator
跳转链接的跳转时的默认灰色背景,设置为none
1 | <navigator hover-class="none"> |
早期在学习 node
时候,做的笔记。
也称ASCII码文件,每字符占一个字节存储,每字节保存的是字符的ASCII码。可用文本编辑器打开查看,例如.txt
、代码源程序.c
、等等
以二进制编码的形式保存,例如可执行文件(.exe
)、位图文件(.bmp
)、word文件(.docx
)等都属于二进制文件。这种文件不能用文本编辑器打开查看,强行打开会乱码,无法读懂。
优点:
“全部看作二进制”,输入输出的开始和结束由程序控制而不受换行、空格等字符的限制;比文本文件一般体积小,节省存储空间。
1 | // 定义文件指针 |
如果文件事先已经存在,则会被删除重;如不存在,则直接新建。
fprintf()
为写入文件
1 | #include <stdio.h> |
fopen(char *filename, char *mode)
filename
:要打开的文件名称
mode
:文件访问模式
mode | introduce | remark |
---|---|---|
r | 允许读文件(read ) | 文件必须存在,否则出错 |
w | 允许覆盖写文件(write ) | 文件必须被新建(如文件已存在会删除源文件,然后新建) |
a | 允许追加写文件(append ) | 文件不存在时才新建,否则只在源文件末尾添加数据 |
+ | 即允许读也允许写文件 | |
b | 以二进制格式打开文件(binary ) | |
t | 以文本格式打开文件(text ) |
函数 | 功能 | 用法 |
---|---|---|
fgetc或getc | 从当前位置指针处读取文件中的一个字符(1个字符占1个字节),读取后,读写位置指针自动后移1字节 | 字符变量=fgetc(fp); |
fputc或putc | 在当前位置指针处向文件中写入一个字符(1个字符占1个字节),写入后,读写位置指针自动后移1字节 | fputc(字符, fp); |
fgets | 读取文件中的一个字符串,读写位置指针自动后移 | fgets(字符数组名, n, fp); |
fputs | 在当前位置指针处向文件中写入一个字符串(不写入’\0’字符,最后也不自动加’\n’);写入后,位置指针自动后移该字符串长度的字节。 | fputs(字符串首地址, fp); |
fscanf | 从当前位置指针处按格式读取文件中的多个数据,类似于scanf,只不过不是从键盘输入,而是从文件中读取;读取后,位置指针自动后移 | fscanf(fp, “格式控制字符串”, 变量1的地址, 变量2的地址, …); |
fprintf | 在当前位置指针处按格式向文件中写入多个数据,类似于printf,只不过不是显示到屏幕上,而是写入到文件中;写入后,位置指针自动后移 | fprintf(fp, “格式控制字符串”, 数据1, 数据2, …); |
函数 | 功能 | 用法 |
---|---|---|
fread | 从当前位置指针处读取文件中的一批字节,这批字节由count个数据块、每数据块长size个字节组成,共size*count个字节。所读取的字节存入参数buffer地址开始的一段内存空间。读取后,文件位置指针跟随后移实际读取的字节数。函数返回实际读取的数据块数(如读到文件尾或出错,实际读取的数据块数可能小于count) | fread(buffer, size, count, fp); |
fwrite | 在当前位置指针处向文件中写入一批字节,这批字节位于内存中参数buffer地址开始的一段内存空间,由count个数据块、每数据块长size个字节组成,共size*count个字节。写入后,文件位置指针跟随后移实际写入的字节数。函数返回实际写入的数据块数(如写入出错,实际写入的数据块数可能小于count) | fwrite(buffer, size, count, fp); |
函数 | 功能 | 用法 |
---|---|---|
rewind | 把文件位置指针移到文件开头 | rewind(fp); |
fseek | 把文件位置指针从ori开始的位置,向文件尾部(n>0时)或文件首部(n<0时)移动n个字节。ori可有3种取值: 0、1、2分别表示从文件首、当前位置和文件尾开始移动, 0、1、2也可分别写为符号常量SEEK_SET、SEEK_CUR、SEEK_END | fseek(fp, n, ori); 一般n为long型,常量加字母后缀L(l) |
ftell | 若执行成功,函数返回当前文件位置指针的位置(文件中第一个字节的位置为0);若执行失败,函数返回-1 | n = ftell(fp); |
feof | 判断读文件是否已越过了文件末尾 | if (feof(fp) ) … |
结构体类型,不占内存,不能保存数据;
内存空间,可以保存数据
1 | struct stu |
sizeof对类型和变量均可使用
1 | sizeof(boy1); |
1 | struct stu |
1 | struct stu |
因无类型名,无法再重新定义其他变量
1 | struct |
1 | struct stu |
1 | struct stu ss[3]; |
结构体变量用
.
结构体指针变量用
->
(
*
结构体指针变量)用.
1 | struct stu boy1; |
用法与传普通变量类似,
结构体类型变量做函数参数,不会改变原来的实参的值。
结构体指针做函数参数,可以修改原来实参的值。
1 | struct date |
第二种1
2
3
4
5
6
7
8
9
10
11
12
13struct stu
{
int num;
char name[10];
char sex;
struct
{
int year;
int month;
int day;
} birthday;
float score;
};
typedef
为类型起“绰号”,并不产生新的数据类型,只是给已有的类型增加新名
1 | typedef double real; |
stdlib.h
)函数名 | 介绍 | 备注 |
---|---|---|
malloc | 分配1块长度为size字节的连续内存空间(不清零),函数返回该空间的首地址;如分配失败函数返回0 | (类型说明符*)malloc(size) |
calloc | 分配n块、每块长度为size字节的连续内存空间(共size×n字节),并将该空间中的内容全部清零,函数返回该空间的首地址;如分配失败函数返回0 | (类型说明符*)calloc(n,size) |
free | 释放ptr所指向的一块内存空间,ptr是由malloc或calloc函数所分配空间的地址,即是这两个函数的返回值(或类型转换后的返回值) | free(ptr)(ptr为任意基类型的指针) |
以链接方式存储的线性表,链表各元素的逻辑结构与存储结构一般不一致。
链表类型:单向链表,双向链表,循环链表。。。
一个单向链表的节点分为两个部分,第一部分保存或者显示节点的相关信息,第二部分存储下一个节点的地址。单向链表只向一个方向遍历。
链表的一种,特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;列表有节点构成,head指针指向第一个称为表头节点,而终止于最后一个指向NULL的指针。
比单向链表多一个的是,双向链表每个节点有两个链接,一个指向前一个节点,而另一个指向下一个节点,当为最后一个节点时,指向空值或空列表。
在一个循环链表中,首节点和末节点被连接在一起。这种方式,单向和双向都可实现。
1 | #include <stdio.h> |
1 | p = new struct node; |
1 | q->next = p->next; |
如果要改变a, b的值,要使用指针指向a,b
输入两个数,如果第一个数大于第二个数,则交换两个数,否则直接输出1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17int main()
{
int a,b;
printf("请输入两个数字\n");
scanf("%d%d", &a, &b);
if(a<b) swap(&a, &b);
printf("%d, %d\n", a, b);
return 0;
}
void swap(int *p, int *q)
{
int temp;
temp = *p;
*p = *q;
*q = temp;
}
1 | int a[] == int *a; |
1 | int main() |
字符串结尾会有
\0
来标识当前字符串的结束初值个数不得超过数组大小
1 | char ch[20] = "HelloWorld"; |
以char *型指针变量保存字符串首地址1
2
3
4
5
6
7
8
9char *ps = "iPhone";
// 只是将ps的指向地址改变,而不保存字符串内容本身。
ps = "iPad";
char s[] = "iTouch";
// 可以
ps = s;
// 错误,s的值不可以改变
s = "iMac";
printf(“%s”, 一级地址);
其含义时从改地址开始逐个字符输出,直到遇到
'\0'
为止(\0
不输出,也不自动换行)输出字符串其他略有不同,后面要接地址,而不是直接接数据
1 | printf("%d", 数据); |
其含义是从地址开始逐个字符输出,直至
\0
为止(\0
不输出);然后自动换行(即最后再多输出一个'\n'
)
1 | puts(ps); |
其含义是:读入键盘键入的一个字符串(最后要键入回车表示结束,但不键入’\0’),存入“一级地址”开始的一顿内存空间(回车符不存入),并自动在最后一个字符的后面添加
'\0'
。如果字符串中含有空格或Tab符,只能读入空格或Tab符之前的部分(不读空格和Tab符)。
1 | char a[30]; |
其含义是:读入从键盘键入的一行字符(最后一定要键入回车表示结束,但不键入
'\0'
,存入“一级地址”开始的一顿内存空间(回车符不存入),并自动在最后一个字符的后面添加'\0'
。如果字符串中含有空格、Tab符也一起读入并不中断。)
1 | char b[30]; |
1 | // 第一种 |
1 | char *p; |
'\0'
和末尾字符定位让p指向字符串的最后一个字符1
2
3while(*p)
p++;
p--;
1 | char s1[20] = "Hello"; |
1 | void reverse(char *s) |
使用以下函数要包含头文件
#include <string.h>
函数 | 含义 | 功能详细说明 |
---|---|---|
strlen(地址) | 求字符串长度 | 函数返回值为字符串的长度,即从地址开始到’\0’的字符个数(不计’\0’,但其中空格、Tab符、回车符等都计数) |
strcat(串1地址, 串2地址) | 字符串连接 “串1=串1+串2” | 把从串2地址开始到’\0’的内容,连接到串1的后面(删去串1最后的’\0’),结果仍存入串1地址开始的空间中,并在结果字符串末尾自动添加新’\0’(串1地址的空间应足够大) |
strcpy(串1地址, 串2地址) | 字符串拷贝 “串1=串2” | 把从串2地址开始到’\0’的内容,拷贝到串1地址开始的空间中,’\0’也一同拷贝(串1地址的空间应足够大) |
strcmp(串1地址, 串2地址) | 字符串比较 “串1>串2” “串1<串2” “串1==串2” | 两个字符串的大小结果由函数返回值说明: 若函数返回值 > 0,说明 串1 > 串2 若函数返回值 < 0,说明 串1 < 串2 若函数返回值 == 0,说明 串1 = = 串2 |
求占用多少字节,结果为整数
sizeof 是运算符,不是函数,同时也是关键字
sizeof(类型 或表达式)
需要包含头文件 #include
<ctype.h>
isalpha(ch) | 检查ch是否为字母字符,是返回1,否返回0 |
---|---|
isdigit(ch) | 检查ch是否为数字字符,是返回1,否返回0 |
isspace(ch) | 检查ch是否为空白分隔符,即是否为空格、跳格(Tab, ‘\t’)、换行符(‘\n’)、回车符(‘\r’)、换页符(‘\f’)5种之一。 如是这些字符返回1,否则返回0 |
islower(ch) | 检查ch是否为小写字母字符,是返回1,否返回0 |
isupper(ch) | 检查ch是否为大写字母字符,是返回1,否返回0 |
tolower(ch) | 将ch转换为小写字母,函数返回转换后的字符 |
toupper(ch) | 将ch转换为大写字母,函数返回转换后的字符 |