avatar
Articles
159
Tags
23
Categories
4
Home
Tags
Ferry's blog
Search
Home
Tags

Ferry's blog

单链表中交换元素
Updated2022-05-22|DS
前言链表中的交换元素,不同于数组。链表中的操作主要是针对结构中的next 步骤123456789101112131415void Exchange(Position BeforeP)//我这里传入表头{ //为交换P和AfterP Position P, AfterP; //定义一下P,和AfterP P = BeforeP->next; AfterP = P->next; //交换是针对3个结构中的next。 //先想象已经把两个结构交换了,再考虑next要怎么指向 P->next = AfterP->next; BeforeP->next = AfterP; AfterP->next = P; ...
链表中结构指针的指针
Updated2022-05-22|fatal
关于结构指针 struct Node *ps定义一个Node类型的结构指针。注意,此时并没有指向Node的某个结构 必须malloc分配结构空间,并返回结构地址,给ps 这样ps才能有类似的ps->next操作 想要在函数中改变某个指针的指向的时候通常是,函数中malloc返回给指针的情况 显然,如果我们想通过函数改变某个变量的值,那么我们可以传递这个值的指针给函数。让这个指针指向另外一个值 同样地,如果我们想要改变某个指针,那么就要传递指针的指针给函数 123456789101112typedef struct Node *List;void InitList(List *L){ *L = (PtrToNode)malloc(sizeof(Node)); if(*L == NULL) { fprintf(stderr, "out of space."); exit(1); } (*L)->next =...
递归打开文件中的文件
Updated2022-05-22|DS
前言我们知道#include可以引入文件,又可推知,引入的文件中还能包含#include,再次引入文件。即,引用文件中的文件。 我们可以使用递归来输出所有引入文件的内容 函数strstr() 参数(s1, s2) 返回值返回s2的首字符地址,找不到返回NULL 作用从字符串s1中找到字符串s2 strchr() 参数(s1, c1) 返回值返回s1中c1的字符地址 作用从s1中查找c1字符 注意调用字符串与首元素地址,紧密联系即,以上s1,s2都是字符串的首元素地址 实现filename.c1234567#include<stdio.h>#include<stdlib.h>#include "add.c"void Print(){ printf("Hello");} add.c123456#include<stdio.h>void add(){ ...
函数的效率
Updated2022-05-22|DS
前言比较两个函数的效率,可以通过它的运行时间来确定。所以可以通过clock()函数来确定某段程序走过多少ticks。 如何确定运行时间 O(N) N是for循环的运行次数。如果是while循环的话,则要看结束条件和内部,要循环多少次 运行时间为O(L+P)123456789101112131415void PrintLots(List L, List P){ int Counter = 1; Position Ppos = L, Lpos = P; while (Ppos->next != NULL && Lpos->next != NULL) { if(Ppos->i == Counter++)//每次循环不一定执行,运行时间为O(P) { printf("%d ", Lpos->i); Ppos = Ppos->next; } Lpos =...
字符串输入输出
Updated2022-05-22|c practice|c
前言 当我们进行字符串输入时,scanf函数和转换说明%s只能读取一个单词。所以,要进行整行输入,需要用到gets puts()一定要是字符串,即最后需要有’\0’ 函数gets() 参数(字符数组地址) 说明遇到’\n’结束,丢弃’\n’,在最后加上’\0’。这使得gets()可以于puts()有很好的配合 缺点缓冲区溢出,破坏栈中的内容。当我们传入字符串数组的首地址时,gets只知道元素的开始处。这样会导致缓冲区溢出。它在遇到 EOF 字符或换行字符之前,不会停止读入文本。也就是:gets() 根本不执行边界检查。因此,使用 gets() 总是有可能使任何缓冲区溢出。 puts() 参数(字符数组地址) 说明遇到’\0’结束,并且在最后加上’\n’ 示例逐个字符输入,pus()要加上'\0'123456789101112131415#include<stdio.h>int main(){ char str1[] = "we are learning C language."; char str2[40] =...
链接
Updated2022-05-22|linux
前言链接有两种硬链接(hard link)和字符链接当我们ln一个硬链接时,ls -al显示出来的文件链接数量就会加1,但是ln -s一个字符链接却不会。 说明 文件的读取文件名——>inode——>数据区块 用ln来创建链接 符合链接,有参数-s 硬链接,无参数 硬链接 这种链接只是新创建一个文件,这个文件里面的inode与源文件的inode相同,所以都会指向相同的数据区块。 f1   \    ->inode->date block   /f2  所以,我们新建一个硬链接ln test testing。我们把其中的一个文件删除,另外一个文件也能够访问到原始数据。 优点可以将源文件删除,也能访问到原来的数据。 缺点 不能创建目录的硬链接 不能跨文件系统 符号链接 也是创建一个新文件,但是这个文件指向源文件的文件名,它等同于Windows的快捷方式。 f2->f1->ionde->date block 所以,我们新建一个符号链接ln -s test...
文件系统
Updated2022-05-22|linux
前言文件系统,就是用来管理和存储文件的权限,属性,内容等文件信息的系统。因操作系统的不同,文件系统也并不相同。Linux的正统文件系统为ext2。U盘使用的文件系统是FAT格式。 ext2(索引式文件系统)包括 inode一个文件占用一个inode,主要是存储文件的权限和属性,还记录文件所存储所在的数据区块的号码。 数据区块存储文件的内容,当文件太大时,就会占用多个区块 超级区块记录整个文件系统的信息,比如使用了多少个inode,数据区块的使用量 读取 inode指向文件因为,每个inode都对应这个文件的数据块。所以,当我们要读取文件时,就可以通过inode作为索引,找到该文件的数据区块。 inode指向目录数据区块中仅存放文件名 FAT这种格式的文件系统没有inode的存在,就没有索引了。所以,它的读取数据区块速度较慢。 碎片整理当我们要读取一个文件时,磁头会在磁盘上转动,如果保存文件的各个数据区块分散严重的话,磁头就会在磁盘中要多转几圈才能读取数据。碎片整理,就是要把这些数据区块整理到一起,这样读取文件的速度就会更快。
环境变量PATH
Updated2022-05-22|linux
当我们要查看当前目录的子目录和文件时,可以用ls命令,但是ls这是一个文件,单单一个ls命令,不是绝对路径,不是相对路径,也不在当前目录下的文件。那ls这个文件是怎么执行的呢? 在命令行中,要执行文件时,系统先要到环境变量PATH中查找文件。(PATH中记录了一些目录。)然后,再到当前所在目录下,查找文件。 查看PATH变量 echo $PATH这样就列出了变量中存储的所有目录,都是由:(冒号)分隔的。 1/home/ferry/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 将目录加入PATH中 PATH="${PATH}:/root这样就把/root这个目录添加到PATH变量中。 路径与指令搜寻顺序 以相对/绝对路径执行指令,例如“ /bin/ls ”或“ ./ls ”; 由 alias 找到该指令来执行; 由 bash 内置的...
绝对路径与相对路径
Updated2022-05-22|linux
前言/这个表示根目录下bin/这个表示bin的目录下 绝对路径一定要从根目录(/)写起,就是要写完整的路径名 相对路径不是从根目录写起 示例 当我们要cd(change directory)的时候,不论是要用绝对路径和相对路径,都要遵循到(根,当前,上一级)目录下,再到其他的目录(用目录名标识) cd ../bin 到上一级目录下的bin目录(相对路径)cd ./bin 到当前目录下的bin目录,等同于cd bin(相对路径)cd /bin 到根目录下的bin目录(绝对路径) 特殊的目录. 此层目录.. 上层目录- 上一个的目录(记录)~ home目录
目录权限
Updated2022-05-22|linux
前言相对于windows上的的文件,只要是.exe .bat .com后缀的就可以执行。而Linux上的目录或文件,只需要x这个权限就可以执行。但是,可执行的程序代码,与可执行权限是两回事。也就是说,拥有可执行权限,但是能不能成功执行,就要看文件的内容 代表意义[权限][链接][拥有者名][用户组名][文件容量][修改日期][文件名] 拥有者,用户组对应相关权限 如果你不是拥有者,用户组,root,那么你就是others 说明 对于目录的权限 r可以查看目录中的文件和子目录 x可以进入目录 w删除,更新,新建文件和目录 注意根据上述,开发一个目录一般需要具备rx读和执行的权限
1…101112…16
avatar
FerryChan
Articles
159
Tags
23
Categories
4
Follow Me
Recent Posts
js tutorial2025-07-18
JS逆向2025-07-08
正则表达式2025-07-08
python模拟ajax请求2025-07-02
A Django Project2025-06-16
Tags
JavaScript DS git AI sql c python swing scrapy project csapp vue blog English algorithm fatal Q&A java django cpp linux scrape css
Archives
  • July 2025 4
  • June 2025 1
  • February 2025 9
  • March 2023 3
  • February 2023 3
  • May 2022 1
  • February 2022 4
  • January 2022 10
Website Info
Article Count :
159
Unique Visitors :
Page Views :
Last Update :
Framework Hexo|Theme Butterfly
Search
Loading Database