- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 环境变量的作用
环境变量PATH的作用:1.存储各种工具、命令的路径,当使用工具或者命令的时候,系统回去PATH中查找对应的工具与命令2.当自己下载了某个工具或者自己写了某个可执行程序,想要不加路径直接执行,则需要将该工具、程序的路径添加入PATH中...
2019-10-04 23:13:25
435
原创 Linux--网络编程
1.Linux的优点之一就是在于它丰富而稳定的网络协议栈,其范围是从协议无关层(如通用的socket层接口和设备层)到各种网络协议的实现2.对于网络理论介绍一般采用OSI模型,但是Linux中网络栈的介绍一般分为四层的Internet模型2.1数据链路层数据链路层实现了网卡接口的网络驱动程序,以处理数据在网络媒介上(比如以太网)上的传输。不同的物理网络层具有不同的电器特性,网络驱动驱动程...
2019-01-19 22:19:41
216
转载 大端与小端详细介绍
一、什么是大端和小端所谓的大端模式,就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。所谓的小端模式,就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。简单来说:大端——高尾端,小端——低尾端举个例子,比如数字 0x12 34 56 78在内存中的表示形式为:1)大端模式:低地址 -----------------> 高地址0x12 | 0x34...
2019-01-19 19:55:20
2429
原创 LInux--进程间通信
1.进程间通信概念介绍:1.1(1).数据传输一个进程需要将它的数据发送给另一个进程(2).资源共享多个进程之间共享同样的资源(3)通知事件一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件(4).进程控制有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变1.2Linux进程间通信(IPC...
2019-01-16 20:15:34
248
原创 集训2--进程控制理论
1.进程的定义;进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元;2.程序是放到磁盘的可执行文件进程是指程序执行的实例3.进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制进程是暂时的,程序使长久的:进程是一个状态变化的过程,程序可长久保存进程与程序组成不同:进程的组成包括程序...
2019-01-13 21:26:58
131
原创 集训第一天所学
第一天我们主要学习了文件编程的相关知识1.不带缓存的(系统调用)-文件访问:主要学习了open,read,write,lseek函数的运用。2.带缓存的(库函数)- 文件访问主要学习了fopen,fread,fwrite,fseek.3.不带缓存的I/O对是文件描述符操作,带缓存的I/O是针对流的。标准I/O库就是带缓存的I/O,它由ANSI C标准说明。当然,标准I/O最终都会调用上...
2019-01-12 21:21:25
126
原创 单链表之无头和有头--逆序
在介绍单链表逆序操作之前,首先好好地介绍下有头与无头单链表的区别:一、概念辨析线性表的插入删除需要移动大量的元素,因此引入链表(本文讨论单链表)的概念,链表元素之间通过“链”来链接,因此插入和删除时不需要大量的移动元素,而只需要改变“链”的关系即可。(1)头指针:通常使用“头指针”来标识一个链表,如单链表L,头指针为NULL的时表示一个空链表。头结点:在单链表的第一个结点之前附加一个结点,...
2019-01-10 21:23:25
809
原创 enum的介绍以及和#define的区别
在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:复制代码#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7复制代码在此,我们定义一种新的数据类型,希望它能完成同...
2019-01-08 17:52:57
2078
原创 gets与fgets,puts与fputs区别
一.gets与fgets//gets函数很危险,gets没有指定输入字符的大小,限制输入缓冲区的大小,如果输入的字符大于定义的数组长度,会发生内存越界,堆栈溢出。后果严重!对于 gets 函数,它的任务是从 stdin 流中读取字符串,直至接收到换行符或 EOF 时停止,并将读取的结果存放在 buffer 指针所指向的字符数组中。这里需要注意的是,换行符不作为读取串的内容,读取的换行符被转换为...
2019-01-07 16:06:08
1016
原创 liunxC下零碎知识点的总结
1.简述Makefile的作用makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编...
2019-01-07 14:53:14
116
原创 linux--gdb调试
一.对于GDB理论的介绍:1.定义:UNIX及UNIX-like下的调试工具。2.功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。3.文件清单:List(gdb) ...
2019-01-07 14:41:59
295
原创 Linux下输出不同颜色的字体详解
1.介绍:终端字符的颜色是用转义序列进行控制,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。2.格式:printf("\033[字背景颜色;字体颜色m 字符串 \033[0m" );例子如下:printf("\033[1m\033[45;33m H...
2018-12-15 16:21:23
1077
原创 Linux—系统文件和目录介绍
1.linux系统和类linux系统文件目录初步描述如下:bin: binary的缩写,意思为二元的,二进制的。里面存放是的linux系统中的可执行文件。boot:启动的意思,引导目录,存放linux系统引导启动文件。dev:device的缩写,意思为设备装置。保存计算机所有硬件设备,在linux中所有的硬件设备都被抽象为一个文件。etc:存放系统的配置文件。home:家文件夹,每一个用...
2018-12-15 16:01:47
320
原创 Linux下静态库的创立与使用
一.C文件中静态库函数的建立与使用1.首先写两个子文件(开头加上#include<stdio.h>)2.写一个.h文件例如fun.h格式#ifndef FUN_H#define FUN_H声明两个子函数;#endif3. 写一个主文件(里面包括子文件的调用,开头加上#include"fun.h")例如名字t.c4.gcc -c -o .o .c(对两个子文件
2018-12-13 21:48:25
146
原创 Linux--结构体的详细学习
1.结构体的声明声明的一般形式:struct 结构体名{结构体所包含的成员的成员变量};struct stu{char name[20];int num;int age;char group;float score;};stu 为结构体名,它包含了5个成员,分别是name、num、age、group、score。2.定义结构体变量struct stu s1,s2;...
2018-12-13 21:31:01
1218
原创 Linux下main函数带参数问题和atoi函数详解
1.main函数带参数基本格式:main(int argc,char * argv[])argc参数保存命令行参数的个数,是整形变量具体用法可有如下代码看下:a1.c:#include <stdio.h>int main(int argc,char *argv[]){int i;printf(“argc = %d\n”, argc);for(i = 0;i < ...
2018-12-07 21:35:48
905
原创 Linux---输入与输出函数总结
输入输出函数的介绍:(1)所谓输入输出是以计算机为主体而言的。(2)本章介绍的是向标准输出设备显示器输出数据的语句。(3)在C语言中,所有的数据输入/输出都是由库函数完成的。 因此都是函数语句。(4)在使用C语言库函数时,要用预编译命令#include将有关“头文件”包括到源文件中。使用标准输入输出库函数时要用到 “stdio.h”文件,因此源文件开头应有以下预编译命令:#include&...
2018-12-06 21:10:35
631
原创 LinuxC-运算符
Linux下主要的运算符1.算术关系符2.关系运算符3.赋值运算符4.逻辑运算符5.条件运算符6.位运算符一.算术运算符1.1 加(+)把右边的值加到左边的值上1.2 减(-)左边的值减去右边的值1.3 乘()左边的值乘以右边的值1.4 除(/)左边的值除以右边的值1.5 正号(+)生成一个跟原值大小相等,符号也是相同的新值。1.6负号(-)生成一个与原值大小...
2018-12-04 21:48:39
238
原创 指针与数组名的关系
1.对于一维数组 a[10],一级指针pp=a;//把数组名(常量地址)赋值给了指针p(正确)因为p是int指针,而数组名相当于int 常量,所以正确。p=&a;//编译时就会出现错误,会显示警告:从不兼容的指针类型赋值。那是因为&a是取数组a的地址,相当于int()[10]类型的数组指针,而指针p只是普通的一级指针,指向int型变量,不能随便赋值。2.对于二维数组名与二...
2018-12-04 19:59:07
941
原创 一维数组名与二维数组名的关联
1.一维数组名与二维数组名的关系之于普通指针与数组指针的关系2.首先数组名编译器会隐式变换看做指针常量,因此a[i]与a+i是等价的。a+i返回由i指定的行地址,假设元素类型为char,则行指针类型为char ()[n],其中n为列宽,即每行元素数量。当行指针指向一个地址时,此时该行首元素地址与行地址是一致的,但是类型不同,这个是理解二维数组指针的关键。星号在指针前含义为取指针指向内存中的值...
2018-12-03 20:46:59
394
原创 exit()函数学习
1.exit()函数介绍函数名: exit()所在头文件:stdlib.h功 能: 关闭所有文件,终止正在执行的进程。用法格式:void exit(int status)exit() 是电脑函数exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束,跳回操作系统。exit(0) 表示程序正常退出,exit⑴/exit(-1)表示程序异常退出。exit() 结束当前进程/...
2018-12-01 21:47:02
3461
原创 对于linux下指令的进一步扩充与巩固
1、在Linux 系统中,以( 文件)方式访问设备2、前台起动的进程使用( kill 0 )终止。3、在使用ls 命令时,用八进制形式显示非打印字符应使用参数(-b ) 。4、在Linux 系统中,用来存放系统所需要的配置文件和子目录的目录是(/etc )。5、在Linux 系统中,压缩文件后生成后缀为.gz 文件的命令是( tar )。6、将/home/stud1/wang ...
2018-11-29 21:30:24
111
原创 对于指针与malloc函数关系的研究,以及指针的赋值。
对于下面伪代码:1.1int *p,a=3;p=&a;1.2int *p;*p=3;对于1.1编译时正确对于1.2编译时会出现错误,那是因为即便你定义了指针p,但并未给它分配内存空间,这就类似于声明,只是告诉系统我这个指针是干什么用、什么类型的而已。针对1.2解决方法:int *p=(int *)malloc(sizeof(int));*p=3;现在再去编译还...
2018-11-29 21:25:07
416
转载 cd命令详解
linux中cd命令使用详解,linuxcd使用详解Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的。所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧。命令格式:cd [目录名]命令功能:切换当前目录至dirName常用范例3.1 例一:进入系统根目录命令:cd /输出:...
2018-11-29 21:03:59
7020
原创 字符串与指针,数组的关系与用途
1.对于字符串可以由字符数组来存储例如: char a[]=“hello”2.字符串用指针来表示char *p=“hello”;这只能代表字符串的首地址给了指针p3.3.这样对于数组与指针,可实现对于字符串的字节的计算,以及对于字符串的字符交换,逆序输出3.1字符串的字节计算代码如下:include<stdio.h>int main(){char a[20]=“h...
2018-11-29 21:00:46
439
原创 字符串相关操作详解
1.字符串的长度计算(strlen)调用库函数(string.h)a[i];len=strlen(a);除了调用库函数,可由下列的代码实现相同功能。相对应的代码:#include&lt;stdio.h&gt;int main(){char a[20];char *p;int i=0;printf(“Please input str:\n”);scanf("%s",a);...
2018-11-29 20:02:57
196
原创 scanf与gets的区分
1.getsc( )函数将接收整个字符串直到回车为止。2.scanf()函数相比gets()函数输入字符串存在一个问题,那就是输了空格之后会认为输入字符串结束,空格后字符将作为下一个输入项处理。当然了,对于scanf也可以处理这问题。可以加入%【】,【】内可以加^任意字符(eof)来结束字符串的输入如%【^eof】就是直到有eof输入才表示输入字符串终止。...
2018-11-28 13:30:40
212
转载 关于static变量的定义及性质的深层介绍
1.static全局变量我们知道,一个进程在内存中的布局如图1所示: 其中.text段保存进程所执行的程序二进制文件,.data段保存进程所有的已初始化的全局变量,.bss段保存进程未初始化的全局变量(其他段中还有很多乱七八糟的段,暂且不表)。在进程的整个生命周期中,.data段和.bss段内的数据时跟整个进程同生共死的,也就是在进程结束之后这些数据才会寿终就寝。 当一个进程的全局变量被...
2018-11-22 20:33:33
356
原创 static的用法及其与auto的区别小结
1.static静态全局变量它储存在全局数据区,每次只初始化一次,等程序结束时方才释放内存。例如:#include<stdio.h>int main( )static int i=0;{int c,k=0;for(k=0;k<3;k++){int c;c=++i;printf("%d",c);}return 0;}输出结果就是 :123此时...
2018-11-22 20:29:22
1865
原创 Linux下c的进一步学习
1.数据存储区定义及其特点1.1堆区由malloc动态分配内存,free释放的存储在堆区,由new分配,delete释放的存储在自由存储区,自由存储区一般来讲不仅包括堆区,还可能包括全局存储区的未分配部分。1.2栈区就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现...
2018-11-19 19:57:58
94
原创 linux下c的学习
1.c语言相较于其他语言的优点:(1)良好的移植性(2)运行效率高(3)生成目标代码质量高,程序执行效率高2.静态库与动态库的定义与区别(1)库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件。另外一种情况是,对于某些不会进行大的...
2018-11-19 16:33:03
312
原创 数据结构盲点学习
1.栈和队列、堆、堆栈的区别?队列是先进先出,有出口和入口,先进去可以先出来。栈就像一个箱子,后放上去的,可以先出来堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。{堆是指程序运行是申请的动态内存,而栈只是指一种使用堆的方法(即先进后出)。栈是先进后出的,但是于堆而言却没有这个特性,两者都是存放临时数据的地方。 对于堆,我们...
2018-11-19 14:41:11
113
原创 第一周 第二天的linux学习
今天我学习了linux的复制与删除指令,gcc的四大步骤(预处理,编译,汇编,链接),以及静态库函数、动态库函数,以及linux 下的if-else、for、while语句的编程,以及对于.sh文件编辑,虽然这只是初步,但更是基石。主要的指令如下;1.命令行下的复制粘贴与删除指令。复制;yy(前提就是你得进入文件的命令行中),复制哪行,光标则需要移到首行的首地址,再者需要复制几行,在dd前面...
2018-11-13 21:38:22
115
原创 linux 基本指令
第一周 第一天linux基本指令1.mkdir +目录名(创建新的目录)mkdir /home/work在/home目录下创建work目录2.cd +目录名(进入新的目录)cd /home进入home目录cd…返回上一级目录3.ls 【选项】目录名ls/ home显示home目录下的文件与目录,不包含隐藏文件ls -a /home显示/home目录下的文件与目录,包...
2018-11-12 14:16:05
174
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人