- 博客(24)
- 收藏
- 关注
原创 Day 31.32 进程间通信(1)
1管道通信1.1无名管道int pipe(int filedis[2]);函数返回值 :成功:0,出错:-1 当一个管道建立时,它会创建两个文件描述符:filedis[0]用于读管道,filedis[1]用于写管道。 管道通信1.2有名管道命名管道(FIFO)和无名管道基本相同,但也有不同点:无名管道只能由父子进程...
2018-08-19 18:20:48 192
原创 Day 29.30 进程控制编程(2)
1.vfork()#include<unistd.h> pid_t vfork(void); vfork函数创建的新进程,刚开始时会暂时与父进程共享地址空间。另外,vfork函数保证子进程先运行,在它调用exit之后父进程才可能被调度运行。 区别:1. fork:子进程拷贝父进程的数据段 vfork:子进程与父进...
2018-08-19 18:07:32 175
原创 Day 27.28 进程控制编程(1)
进程的基本概念:进程是一个程序的一次执行的过程。它和程序是有本质区别的,程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程。它是程序执行和资源管理的最小单位。当一个程序开始执行后,在执行开始到执行完毕退出这段时间里,它在内存中的部分就被称作一个进程。因此,对系统而言,当用户在系统中键入命令执行...
2018-08-13 21:31:17 210
原创 Day 25.26 文件编程--不带缓存的文件I/O操作
文件的概念:“文件”这个名词不陌生,什么是文件?系统资源(内存、硬盘、一般设备、进程间通信的通道等)的一个抽象,对系统资源进行访问的一个通用接口。采用这种“文件”的方式有什么好处?对资源提供通用的操作接口,可以极大地简化系统编程接口的设计。既然文件是一个通用的接口,由于系统资源多种多样,是不是意味着文件类型也多种多样? 文件的类型:常见的文件类型(可以通过文件来访问的系...
2018-08-11 19:27:02 350
原创 Day 23.24 堆排序与归并排序
堆排序什么是堆?堆一般都指的是二叉堆,它满足二个特性:1、父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2、每个结点的左子树和右子树都是一个二叉堆(都是大顶堆或小顶堆)。如下为一个小顶堆(父结点的键值总是小于任何一个子节点的键值)由此,若序列{k1,k2,…,kn}是堆,则堆顶元素(或二叉树的根)必为序列中n个元素的最小值(或最大值)。 若在输出堆顶的...
2018-08-09 23:41:26 199
原创 Day 21.22 树--二叉链表使用
#include <stdio.h>#include <stdlib.h>#define MAX 20 typedef char ElementType;typedef struct treenode{ ElementType value; struct treenode* left; struct treenode* ...
2018-08-07 21:29:39 161
原创 Day 19.20 数据结构--栈的顺序结构与链式结构 循环队列与链队列
栈的顺序结构//用数组实现顺序栈#include <stdio.h>#include <stdlib.h> #define T 1#define F 0#define MAX 20//栈的最大容量 typedef int Elementype;typedef int Status; typedef struct stack...
2018-08-05 21:03:38 213
原创 Day 18 数据结构--循环链表与双向循环链表
循环链表#include <stdio.h>#include <stdlib.h>#define T 1#define F 0 typedef int Elementype;typedef int Status; struct node{ Elementype value; struct node* next;...
2018-08-05 20:53:49 114
原创 Day 17 数据结构基础-单链表
#include <stdio.h>#include <stdlib.h>#define T 1#define F 0 typedef int Elementype;typedef int Status;//函数的返回类型 struct Node//链表结点结构体{ Elementype value; struct N...
2018-08-05 20:45:40 131
原创 Day 16 顺序表(数组与结构体)
1.线性表--顺序表(数组)#include <stdio.h>#define MAX 10 typedef int Elementype; //数组中元素类型 ,定义别名方便统一定义数据类型 void print(Ele...
2018-08-01 23:50:52 628
原创 Day 14.15 关键字与内存管理
关键字1.struct一、结构体概念 前面我们了解了数组(Array),它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形...
2018-08-01 09:08:19 173
原创 Day 13 指针与字符串 指针与函数
指针与字符串一、数组存放字符 C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,(例1_1)字符数组归根结底还是一个数组,上节讲到的关于指针和数组的规则同样也适用于字符数组(例1_2)。二、字符指针 除了字符数组,C语言还支持另外一种表示字符串的方法,就是直接使用一个指针指向字符串,例如:char *str = "hello"; 或者:...
2018-07-29 16:34:25 209
原创 Day 12 指针与数组
指针与数组:数组指针一、利用数组名遍历数组元素 数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示:定义数组时,要给出数组名和数组长度,数组名可以...
2018-07-29 16:32:26 132
原创 Day 11 指针初学
指针的概念计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用4个字节,char 占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。 我们将内存中字节的编号称为地址(Address)或指针(Pointer)(即地址就是指针)。地址从 0 开始依次...
2018-07-27 23:18:39 145
原创 Day 10 递归函数
#include <stdio.h> long func(int); //func函数调用 int main(){ int n; //调用实参 scanf("%d",&n); printf("%d=%ld",n,func(n)); ...
2018-07-26 21:30:01 207
原创 Day 9 数组
一.一维数组1.一维数组的定义格式为:类型说明符 数组名[常量表达式];例如: int a[10]; 它表示定义了一个整形数组,数组名为a,有10个整形元素。2.在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。3.常量表达式中可以包括常量和符号常量,但不能包含变量。数组说明中其他常见的错误:① float a[0]; ...
2018-07-25 23:52:44 325
原创 Day 8 冒泡排序与选择排序
1.冒泡排序第一层循环冒泡排序第一层循环的含义为:需要遍历多次数组,才能将这个数组排好序,第一次遍历,确定一个最值。第二次遍历,确定第二个最值。。。。第len-1次遍历,确定第len-1最值。 len-1个最值都确定了,自然整个数组也就排好序了。因此,第一层循环含义为:需要遍历len-1次数组,才能将数组排好序。第二层循环通常定义为int j; j是一个与i...
2018-07-24 21:18:22 122
原创 Day 7 素数问题
1.输入1-100的数 判断是否为素数#include <stdio.h> int main(){ int num; scanf("%d",&num); int i; int count = 0; for(i = 2;i < num;i++) { if(0 == num %...
2018-07-24 00:03:59 138
原创 Day 6 数据输入输出
1.putcharc语言函数之一,作用是向终端输出一个字符。其格式为putchar(c),其中c可以是被单引号(英文状态下)引起来的一个字符,可以是介于0~127之间的一个十进制整型数(包含0和127),也可以是事先用char定义好的一个字符型变量。putchar函数的基本格式为:putchar(c)。(1)当c为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为转...
2018-07-22 21:28:40 292
原创 Day 5 基本运算符初学与运算
一共有十五个优先级: 同一优先级的运算符,运算次序由结合方向所决定 1 () [] . -> (括号,成员排第一) 2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof (单目运算排第二) 3 * / % (乘除余三) 4 +...
2018-07-21 23:56:50 408
原创 Day 4 bash shell脚本预习
Shell命令Linux系统中的Shell种类众多,常见的有bash、csh以及ksh等。不同的Shell语法有所不同,不能互换使用,但每种Shell都有其特色之处。这里我们选择bash来讲述Shell脚本编程的基础知识。Shell命令可以事先写在一个文件中,使用时Shell读取文件中的命令逐条解释,这种文件被称为脚本。如何创建shell脚本1. 编写一个简单的Shell脚本,输出字...
2018-07-20 20:31:23 368
原创 Day 3 Linux(目录篇 、文件操作篇 、压缩解压相关命令, 编辑器vi 、编译器gcc 、调试器gdb、 makefile工程管理器初学)
一.目录篇:1.文件处理命令:cp英文原意:copy语法:cp -rp[源文件或目录][目的目录] 源文件可以同时是多个,即同时复制到多个文件-r 复制目录-p保留文件属性,比如文件创建时间等等,此时和创建硬链接有点相似,但是不能实时更新-f强制打开文件即使文件不能打开,也要强制打开 2.文件处理命令:mv英文原意:move语法:mv [源文件或目录] [目...
2018-07-19 20:29:56 258
原创 补:Day 1 Linux文件目录及命令
(一)linux文件及目录:Linux中,除了"/"以外,其他的所有符号都可以用来做文件的命名在Linux中,目录的分隔符也是使用/来分隔的,所以/是不能用来命名文件的在Liunx中,文件名,命令,选项,参数等等都是严格区分大小写的,在windows没有这种特征,所以在今后我们在敲一文件名,选项,参数,都是要严格区分大小写的(二)文件处理命令:命令格式:命令 -选项 参数 (选...
2018-07-18 21:12:47 307
原创 Day2 C语言预习作业
1.什么是计算机程序?什么是编程语言?为什么需要编程语言?编程语言是用来干嘛的?举例一些编程语言,以及他们各自的特点?2.编辑好的程序到成为可以运行的可执行文件,要经历哪几个过程? 3.现阶段为什么要学习C语言,而不是其他的编程语言?C语言有什么特点?3.现阶段为什么要学习C语言,而不是其他的编程语言?C语言有什么特点?4.什么是常量,什么是变量?都有哪些分类? 5.标识符的命名...
2018-07-18 17:26:56 288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人