我们自学习一门高级语言时,都要了解数据成分,可你们知道在高级语言中数据都是如何在内存中存储的吗?今天我就来介绍一下。...语言:C++ int c=-123; 这只是一个简单的定义了一个变量,变量名为c,值为-123。 然而我们大家应该都知道,计算机存储数据都会以二进制的形式来存储。...首先-13加12肯定是-1,因为有负号,所以是一个有符号int型的数值。 所以就要求出这个数的补码,我上面说过,有符号数,在内存中存储的都是补码。...由于我们test2是一个无符号的int型变量,所以他就把这个32个1直接转为了10进制,也就是 ? 看到这里,我相信大家应该明白了变量是如何在内存中表示的,以及有符号和无符号变量的区别了吧。...注意:只有当数值为负数时,在内存中才会存补码形式。 比如:int i=124; 虽然我定义的一个有符号型的int变量,但是由于i是一个正数,所以在内存中的存储形式为原码: ?
n个位置 按[gg]:光标移到文本开始 按[shift+g]:光标移到文本末端 按[n+shift+g]:光标移到文本第n行 删除文字: 「x」:每按一次,删除光标所在位置的一个字符 「n+x」:删除光标所在位置的...n行 //注意:dd与“p”配能完成剪切粘贴功能 复制: 「yw」:将光标所在之处到字尾的字符复制到缓冲区中 「n+yw」:复制n个字到缓冲区 「yy」:复制光标所在行到缓冲区 「n+yy」:表示拷贝从光标所在的该行...「set nonu」后会取消文件中 的行号 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了 查找字符: 「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的...示图: 五、Linux项目自动化构建工具-make/Makefile 1、背景及概念 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定...对应的是目标文件; ^:表示依赖文件列表 执行过程/原理: 在默认的方式下只输入make命令,则会在当前目录下找名字叫“Makefile”或“makefile”的文件 如果找到,它会找文件中的第一个目标文件
grep 在文件中查找字符串,并打印出来。 zip/unzip 打包,压缩,解压缩。 -r:递归式压缩,把目录以及子目录一并处理。 tar 打包,压缩,解压。...dd:剪贴,ndd从当前行到n行剪贴。 p:粘贴,np粘贴多少次。 u:撤销。 Shift g:光标定位到文件结尾。 gg:文件最开始的地方。 n Shift g:文件的第n行的开始。...l 行号:从行号处开始列,每次列10行。 b 行号:设置断点。 info b:查看断点。 d 断点编号:取消断点 r:运行,遇到断点停止。 c:运行到下一个断点处停下来。 n:逐过程 s:逐语句。...p 变量名:打印变量的信息 bt:调用堆栈。 finish:把当前函数运行结束停下来。...自动化的进行程序的编译链接,make会在当前文件中查找makefile或者Makefile。
#include void sort(int*x,int n) { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j+...numbers:"); for(i=0;i<10;i++) scanf("%d",p++); p=a; sort(p,10); for(;p<a+10;p++) { printf("%d\n"
「n + yw」: 复制 ==n 个完整的字符串==到缓冲区 替换;更改;切换大小写 「shift + ~」: 将光标处的大小写互相切换 「r」: 替换光标所在处的字符。...跳到文件中的某一行 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。...: 打印表达式的值,通过表达式可以修改变量的值或者调用函数 display 变量名: 跟踪查看一个变量,每次停下来都显示它的值,==相当于vs中的监视==* undisplay 变量名: 取消对先前设置的那些变量的跟踪...如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到 “mytmp” 这个文件,并把这个文件作为最终的目标文件。...Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释 显式规则说明了,如何生成一个或多个目标文件。
finish:执行到当前函数返回,然后挺下来等待命令 print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数 p 变量:打印变量值。...p 变量:打印变量值 11. display 变量名:跟踪查看一个变量 每次停下来都显示它的值 12. undisplay:取消对先前设置的变量的跟踪 13. until X行号:跳至X行 4.3 理解...背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译...那么, make会在当前目录下找名字叫“Makefile”或“makefile”的文件 如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“hello”这个文件,并把这个文件作为最终的目标文件...hello所依赖的hello.o文件不存在,那么make会在当前文件中找目标为hello.o文件的依赖性,如果找到则再根据那一个规则生成hello.o文件(这有点像一个堆栈的过程) 当然,你的C文件和H
介绍 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时显得尤为强大。...选项参数说明: 选项参数 功能 -F 指定输入文件拆分分隔符 -v 赋值一个用户定义变量 awk内置变量 内置变量 含义 ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用...$1表示当前行的第一个域,$2表示当前行的第二个域,……以此类推。...文件有root关键字的所有行,然后以”:”拆分并打印输出第7列: awk -F: '/root/{print $7}' passwd # -F: 以':'分隔符拆分每一个列(域)数据 运行效果 4....NF-N) N是几, 就是倒数第几列 运行效果 10.打印10到20行的第一列 获取第10到20行的第一列的信息: awk -F: '{if(NR>=10 && NR<=20) print $1}'
&变量: 目的:获得变量在内存中的地址; 返回:变量在内存中起始地址; 第004节c语言指针复习2指向数组和字符串的指针 实例2 我们在pointer_test.c的文件中写一个test2()函数,...3个元素的字符数组ca(数组名表示该数组存储的首地址),然后定义一个字符指针pc,然后通过printf()函数把定义这两个变量在内存中的地址打印出来。...3个元素的整型数组ia数组名表示该数组存储的首地址),初始化值分别为,0x12345678, 0x87654321, 0x13572468, 然后定义一个整型指针pi,然后通过printf()函数把定义这两个变量在内存中的地址打印出来...,我们打印一下变量的存储地址*/ printf("&pc =%p\n",&pc); /*第二步:所有变量都可以保存某些值,接着赋值并打印*/ //前面已经有pc="abc";...我们直接执行make的时候,会在makefile里面找到第一个目标然后执行下面的指令生成第一个目标。
list 打印行号 list 将所有内容和行号一起打印 2.2 run运行程序 r(run) 运行程序 遇到断点停止 2.3 执行语句 n 或 next:单条执行 对应vs里的f10 s或...:禁用断点 enable breakpoints:启用断点 例如: 2.5 跟踪变量 display 变量名:跟踪查看一个变量,每次停下来都显示它的值 undisplay:取消对先前设置的那些变量的跟踪...makefile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译...如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“test3”这个文件, 并把这个文件作为最终的目标文件。 3....如果test3所依赖的文件不存在,那么make会在当前文件中找目标为test3.c文件的依赖性,如果找到则再根据那一个规则生成test3.c文件。(这有点像一个堆栈的过程) 5.
.$ 搜索行以A至Z的一个字母开头,然后跟两个任意字母,然后跟一个换行符的行。将找到第5行。...无法找到匹配行(改成^[A-Z][a-z]*.*3[0-5]可找到第2行) ^ *[A-Z][a-z][a-z]$ 搜索以0个或多个空格开头,跟一个大写字母,两个小写字母和一个换行符。...将找到第4行的TOM(整行匹配)和第5行。注意,*前面有一个空格。...,填充域,$0则表示所有域,$1表示第一个域,$n 表示第n个域,随后开始执行模式所对应的动作。...如果相应的文件长度大于BLOCK_LIMIT变量所规定的值,那么该文件将被拷贝到一个文件 名含有时间戳的文件中,原先的文件长度将被截断为0。 ?
当gcc在默认的路径中没有找到头文件时,就到本选项指定的目录中去找。在上面的例子中创建一个目录,然后创建一个头文件test.h。...一个错误是指第10行prntf之前缺少分号。两个警告是指第7行和第8行的变量没有使用。...6.4.2 Makefile的引入 Makefile的引入是为了简化我们编译流程,提高我们的开发进度。下面我们用一个例子来说明Makefile如何简化我们的编译流程。...第二行我们定义了变量OBJ,并赋值字符串”main.o,add.o,sub.o“。其中第三,四,十三行,使用这个变量。这样用到用一个字符串的地方直接调用这个变量,无需重复写一大段字符串。 ...6.5.2.4 赋值符‘+=’ Makefile 中的变量是字符串,有时候我们需要给前面已经定义好的变量添加一些字符串进去,此时就要使用到符号“+=”,比如如下: 01 OBJ = main.o add.o
其按顺序找这三个文件,一旦找到,就开始读取这个文件并执行。 当前,我们也可以给make命令指定一个特殊名字的Makefile。...) 我们可以注意到,这个Makefile中并没有写下如何生成hello.o和kitty.o这两目标的规则和命令。...这些奇怪的变量我们叫“自动化变量”,后面会详细讲述。 自动化变量 在上述的模式规则中,目标和依赖文件都是一系列的文件,那么我们如何书写一个命令来完成从不同的依赖文件生成相应的目标?...在上述所列出来的自动量变量中。四个变量(@ 、< 、% 、* )在扩展时只会有一个文件,而另三个的值是一个文件列表。...如果经过第5步,没有模式规则被找到,那么就做更进一步的搜索。对于存在于列表中的第一个模式规则: (a) 如果规则是终止规则,那就忽略它,继续下一条模式规则。 (b) 计算依赖文件。
通常跟参数-n 一起运行 s:替换,用一个字符串替换另一个,注意与c参数的区别 3.举例 我们用/ etc/passwd文件来演示,先来看看sed不加参数跟加上-n参数是怎样的 ? ?...删除第1行,第10行,留意行号变化 ? 将passwd文件中包含/sbin/nologin替换为/bin/bash并打印输出 ?...将passwd文件中第2行的数据替换为test,注意到与s参数的区别了吧 ? 在passwd文件第二行新增test字符串 ? 在passwd文件第二行插入test字符串 ?...打印passwd每一行的数据,并以:为分隔符计算每行的字符总数打印在每行数据的末尾 ? 打印passwd文件中以:为分隔符第三个字段即UID>=500的数据所在行号 ?...想想日常工作中如何要获取文件中第几行第几列的数据应该如何操作,如打印passwd文件中第一行与最后一行第一列的数据,sed跟awk结合使用啦。 ?
^[A-Z]..$ 搜索行以A至Z的一个字母开头,然后跟两个任意字母,然后跟一个换行符的行。将找到第5行。...将找到第4行的TOM(整行匹配)和第5行。注意,*前面有一个空格。...,填充域,0则表示所有域,1表示第一个域, 思考题:如何打印所有记录(以/etc/passwd中的内容为例) 例4:搜索/etc/passwd有root关键字的所有行 这种是pattern(模式)的使用示例...) 例6:统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容: 显示所有账户的记录,并带有其记录号,并在END部分打印输入文件名 除了awk的内置变量,awk还可以自定义变量...如果相应的文件长度大于BLOCK_LIMIT变量所规定的值,那么该文件将被拷贝到一个文件 名含有时间戳的文件中,原先的文件长度将被截断为0。
-type f -user root -exec chown weber {} \; 注:{}是一个特殊的字符串,对于每一个匹配的文件,{}会被替换成相应的文件名; 将找到的文件全都copy到另一个目录...filename -d 指定定界符 cat -f2 -d";" filename cut 取的范围 N- 第N个字段到结尾-M 第1个字段为MN-M N到M个字段 cut 取的单位...-b 以字节为单位-c 以字符为单位-f 以字段为单位(使用定界符) 示例: cut -c1-5 file //打印第一到5个字符 cut -c-2 file //打印前2个字符 截取文本的第5...: NR NF $0 $1 $2 NR:表示记录数量,在执行过程中对应当前行号; NF:表示字段数量,在执行过程总对应当前行的字段数; $0:这个变量包含执行过程中当前行的文本内容; $1:第一个字段的文本内容...迭代每一个字符 ${string:start_pos:num_of_chars}:从字符串中提取一个字符;(bash文本切片) ${#word}:返回变量word的长度 for((i=0;i<${#word
sed是一个非交互性性文本编辑器, 它编辑文件或标准输入导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。...sed必须通过行号和正则表达式指定要改变的文本行 sed怎样读取数据: sed从文件的一个文本行或从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲区,然后读命令行或脚本的第一条命令,并使用这些命令查找模式或定位行号编辑它... y 传送字符 n 从另一个文本中读文本下一行,并附加在下一行 {} 在定位行执行的命令组 g 将模式2粘贴到/pattern n/ 基本...打印第1行到第3行 打印模式: sed -n '/movie/'p temp.txt 打印含movie的行 使用模式和行号查询: sed -n '3,/movie/'p temp.txt... 只在第3行查找movie并打印 显示整个文件: sed -n '1,$'p temp.txt $为最后一行 任意字符: sed -n '/.
-type f -user root -exec chown weber {} \; 注:{}是一个特殊的字符串,对于每一个匹配的文件,{}会被替换成相应的文件名; 将找到的文件全都copy到另一个目录...f2 -d";" filename cut 取的范围 N- 第N个字段到结尾 -M 第1个字段为M N-M N到M...-c1-5 file //打印第一到5个字符 cut -c-2 file //打印前2个字符 截取文本的第5到第7列 $echo string | cut -c5-7 3.8. paste...: NR NF $0 $1 $2 NR:表示记录数量,在执行过程中对应当前行号; NF:表示字段数量,在执行过程总对应当前行的字段数; $0:这个变量包含执行过程中当前行的文本内容; $1:第一个字段的文本内容...迭代每一个字符 ${string:start_pos:num_of_chars}:从字符串中提取一个字符;(bash文本切片) ${#word}:返回变量word的长度 for((i=0;i<${
1.行号 set nu/nonu 列出行号/取消行号 2.分屏 vs copy.c 同时打开多个文件(代码中的copy.c是文件名),但是只有一个光标。光标的意义在于选中的行或屏幕。...四、makefile(自动化构建工具) makefile是一个文件,make是一个命令(执行makefile中的命令)。...2.makefile的语法 make会执行第一个目标文件的生成语句 make 目标文件文件名 会执行指定的文件语句。 3.如何确保为目标文件每次是否需要重新编译生成?...finish:执行到当前函数返回,然后挺下来等待命令 print§:打印表达式的值,通过表达式可以修改变量的值或者调用函数 p 变量:打印变量值。...display 变量名:跟踪查看一个变量,每次停下来都显示它的值 undisplay:取消对先前设置的那些变量的跟踪 until X行号:跳至X行 breaktrace(或bt):查看各级函数调用及参数
p print打印, 打印出匹配的内容,通常与-n选项和用 s substitute替换, 替换掉匹配的内容 = 用来打印被匹配的行的行号 n 读取下一行,遇到n时会自动跳入下一行 特殊符号 命令...action:在找到匹配内容时所执行的一系列命令 选项参数说明 选项参数 功能 -F 指定输入文件拆分分隔符 -v 赋值一个用户定义变量 awk内置变量 内置变量 含义 ARGC 命令行参数个数 ARGV...根据分隔符分割后的列数 NR 已读的记录数, 也是行号 OFS 输出域分隔符 ORS 输出记录分隔符 RS 控制记录分隔符 $n $0变量是指整条记录。...示例: 打印匹配行中第7列数据 搜索passwd文件有root关键字的所有行, 然后以":"拆分并打印输出第7列 awk -F: '/root/{print $7}' passwd # -F: 以':'...' passwd # printf(格式字符串,变量1,变量2,...) # 格式字符串: %ns 输出字符串,n 是数字,指代输出几个字符, n不指定自动占长度 # 格式字符串: %ni 输出整数,n
在下列情况下,grep 将打印不包含字符串 “boo” 的每一行,并显示行号,如上一个例子所示 grep -vn "boo" sampler.log 4:machine 6:bungie 7:bark...注意,由于文件的行数是4,不能被3整除,所以最后一个命令提前完成,所以最后的 “print $0” 命令打印第4行,你可以看到我们也打印了行,使用 NR 变量输出行号。...也许最有用的功能是对一个字符串进行 “搜索和替换” 到另一个字符串。...您可以将 sed 命令嵌入到使用 '-e' 选项调用 sed 的命令行中,或者将它们放在一个单独的文件中 'sed.in' 并使用 '-f sed.in' 选项调用 sed。...请注意,默认操作是打印所有不是无论如何匹配,所以如果你想抑制它,你需要使用 '-n' 标志调用 sed,然后你可以使用 'p' 命令来控制打印的内容。
领取专属 10元无门槛券
手把手带您无忧上云