自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

转载 进程与线程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而

2017-01-23 10:30:07 189

转载 三次握手四次挥手

TCP头部: 其中 ACK   SYN  序号  这三个部分在以下会用到,它们的介绍也在下面。暂时需要的信息有:ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应

2017-01-20 14:56:52 163

原创 无缓冲访问文件

Creat函数表头文件:#include          #include          #include定义函数: int creat(const char *pathname,mode_tmode);函数说明: 参数pathname指向欲建立的文件路径字符串,creat()相当于使用下列的调用方式调用open();   open(const char *p

2017-01-19 21:30:03 246

原创 sqlite

数据库是特殊文件,由DBMS(数据库管理系统软件操作)嵌入式数据库要求:体积适当,可移植性好,编程接口简单,代码开源主要用关系数据模型储存数据。touch student.dbsqlite3 student.dbsqlite>create table student(id integer primary key,name text,age integer); 创建student

2017-01-18 20:54:56 253

原创 1 .17

系统调用:是操作系统为用户态运行的进程和硬件设备(如CPU、磁盘、打印机等)进行交互提供的一组接口,即就是设置在应用程序和硬件设备之间的一个接口层。库函数:顾名思义是把函数放到库里。是把一些常用到的函数编完放到一个文件里,供别人用。fopen:要用文件指针来接,其模式字符串有:r,w,a,r+,w+,a+等,r打开一个文件,可读取。w打开一个文件可写入,如果文件不存在则创建。a打开

2017-01-17 20:07:11 193

原创 9号笔记

1、传入参数:一个变量的值,传入函数让函数使用,叫做传入参数。2、传出参数:一个变量没有值,从函数中带出值的变量叫做传出参数。3、函数返回值注意点:①不能返回栈空间地址,因为一旦函数调用结束,内存立即释放,即不能返回局部变量地址。②#define  LOG-SUCCESS 0(return LOG-SUCCESS)可以通过宏定义提高代码可读性。③C语言主函数加r

2016-12-11 17:18:18 191

转载 回调函数

一直不太理解回调函数的作用,下面是找到的一些关于回调函数的作用的解答。1.回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。2.回调函数就相当于一个中断处理函数,由系统在符合你设定的条件时自动调用。为此,你需要做三件事:1,声明;2,定义;3,设置触发条件,就是在你的函数中把你的回调函数名称转化为地址作为一个参数,以

2016-12-09 13:06:17 341

原创 函数,函数指针

数组的地址用数组指针变量来保存。指针数组名做形参用二维指针来接。char **argv  可能是指针的地址,也可能是指针数组。 主函数形参:int main(int argc, char *argv[ ] // char **argv)argv 命令行参数保存空间argc 命令行参数个数(包括命令本身argv[0]) 函数指针int (*p)(int,i

2016-12-09 13:04:01 171

原创 数组与指针的区别

C语言的特点:移植性好,能访问硬件,运行效率高。其能访问硬件的原因就是指针能够访问地址。指针是变量数,组名是常量,所以指针比起数组用起来灵活。从空间的分配上讲,由于数组是静态分配,利用率低。指针是动态分配,空间利用率高从安全性上讲,指针会造成内存泄漏(野指针),数组只会产生越界。从访问效率上讲,指针是间接的,数组是直接的,所以数组的访问效率较高。

2016-12-09 13:01:19 217

原创 兔子产子问题

题目:有一对兔子,从出生的第3个月起,每月都生一对兔子。小兔子长到3月后每月又生一对兔子,假设所有兔子不死,问30个月内,每月兔子个数是多少。分析:刚开始可以枚举前7月的兔子个数,发现一个规律,当前月的兔子数等于前一个月兔子数加上前两月兔子数,之后便可以编写程序,结果如下

2016-12-06 18:20:35 602

原创 printf详细用法

首先直接描述printf函数中的“格式描述串”,它是由一系列的“格式转换说明符号”组成,格式转换说明符号的描述形式如下:%[+][-] 0 m[n][输出精度](1)形式字母:制定输出格式,如表d:十进制整型数i:十进制整型数x:十六进制整型数o:八进制整形数u:无符号十进制整形数c:单个字符s:字符串e:指数形式的浮点数f:小数形式的浮点数

2016-12-04 14:28:37 16290

原创 指针小结

int *p:p是指针变量,存放的是地址,这个地址是整型地址;;; 指针是个变量步长:+1后跳的地址:对应的内存空间;指向的内存空间; Int num = 5;int * p = #num++:对num对应的内存空间的值+1;P++:对p对应的内存空间+1;(*p)++:对p指向的内存空间的值+1; 指向的内存空间:就是这个指针变量对

2016-12-03 21:28:37 193

转载 malloc实现原理

malloc()是C语言中动态存储管理 的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值 是一个指向所分配的连续存储域的起始地址的指针。  动态内存分配 就 是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据 程序的需要即时分

2016-12-03 21:18:27 152

原创 12.3笔记

对数组名取地址为数组的地址,对其+1跳数组的长度对一维数组的地址取值等于一维数组首元素的地址a[i] = *(a + i)a[i][j] = *(*(a + i) + j)a + i:第i + 1个一维数组的地址*(a + i):第i + 1个一维数组的首元素地址*(a + i) + j: 第i + 1个一维数组的第j + 1个元素的地址*(*(a + i) + j):

2016-12-03 21:16:46 209

转载 malloc,ralloc,calloc

1.分配内存空间函数malloc调用形式: (类型说明符) malloc (size) 功能:在内存的动态存储区中分配一块长度为”size” 字节的连续区域。函数的返回值为该区域的首地址。 “类型说明符”表示把该区域用于何种数据类型。(类型说明符)表示把返回值强制转换为该类型指针。“size”是一个无符号数。例如: pc=(char *) malloc (100); 表示分配100个字

2016-12-03 21:06:57 173

原创 1130笔记

野指针的定义:随机指向一块内存的指针称为野指针。(成因:因为在计算机中,内存的分配由操作系统来管理,要使用内存需要先向操作系统申请,系统分配后才可以使用,而野指针的内存空间是随机分配的,属于非法访问内存。)野指针的危害:容易导致内存泄漏,即失去对内存的控制导致内存的浪费,在程序运行时由于非法访问内存会产生段错误,但是野指针不一定每次都产生段错误,因为有的时候系统分配给野指针的内存是其他

2016-12-01 14:07:21 263

原创 1128笔记

printf注意事项:行缓冲1满一行才输出2遇到\n或\r才输出没什么要求或指令时候在printf后加\n对应的内存空间 :  指向的内存空间:就是这个指针变量对应内存空间里保存的地址对应的内存空间,我们称之为指向的内存空间int num = 5;int *p; p=#int *p = #num++;    对num对

2016-12-01 14:07:13 204

原创 11 26 笔记

MMU:把虚拟空间映射到物理内存进程虚拟地址区间有4G高地址1G空间给予内核,剩余3G给用户用户空间分为:栈空间,堆空间,数据区,代码段栈空间存放:局部变量,函数形参,自动变量堆空间存放:malloc,ralloc,calloc  动态分配的内存数据区分为3部分:bss:未初始化或初始化为0的全局变量和静态局部变量                              

2016-11-27 16:18:17 142

原创 十进制小数转换为二进制

整数和小数分别转换。整数除以2,商继续除以2,得到0为止,将余数逆序排列。22 / 2  11 余011/2     5  余 15 /2      2  余 12 /2      1  余 01 /2      0  余 1所以22的二进制是10110小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。0.8125x2=

2016-11-27 16:03:39 592

转载 scanf获取句子

scanf的结束标志是空格和回车键,而gets的结束标志为回车键,输入字符串时,一般采用gets因此有下面两种方法可以在使用scanf时完整输入字符串1)利用strcat()函数来实现带空格字符串的输入,可以用字符串追加函数strcat()来连接每个单词。 Strcat()一般格式:char*strcat(char*dest,const char*src);  

2016-11-27 16:00:23 241

转载 C 格式化输出

C格式化输入输出 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf(””, ); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以”%”开始, 后跟一个或几个规定字符

2016-11-27 15:55:36 219

转载 位运算

在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。  位运算符C语言提供了六种位运算符:  & 按位与  | 按位或  ^ 按位异或  ~ 取反  

2016-11-24 21:31:29 129

转载 C语言标准

起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。[

2016-11-22 22:44:41 888

原创 11.21

右左法则:首先从最里面的圆括号(应该是未定义的标识符)看起,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。一旦解析完圆括号里面所有的东西,就跳出圆括号。重复这个过程直到整个声明解析完毕。int*(*(*fp1) (int)) [10]fp1函数指针变量,其指向一个形参为int返回值为数组指针,该数组指针指向整型指针函数int *(*(*arr[5]) ()

2016-11-21 22:58:59 188

原创 11.19笔记

现有的开发语言:Java,c++,PHP,c#,.Net,Python,shell,  oc(ios系统的语言)C语言优点:1、出色的移植性(单片机,ARM等平台都可以用C语言开发)           2、可以访问硬件(汇编也可以访问硬件)         3、运行效率高移植性:代码从一个平台移到另一个平台需要修改的代码越少,移植性越好。对

2016-11-20 17:53:45 146

转载 左右法则

C指针声明解读之左右法则C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:  The right-left

2016-11-19 22:12:44 146

转载 VIM配置

vim 配置文件 ,高亮+自动缩进+行号+折叠+优化将一下代码copy到 用户目录下 新建文件为  .vimrc保存即可生效; 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)"=========================================================================" DesCRiption: 适

2016-11-19 12:04:55 159

原创 11.18笔记

Linux里的快捷键:复制  yy粘贴  p删除  dd恢复  u还有一些回到底层的键:   替换:首先将光标移到这一行:       S/a/b 将a替换成b(只能替换一个)       S/a/b/g  将a替换成b(替换全行)、       S/a/b/gc (询问是否替换)       5,9 S/a/b/g  将5到9行的a替换成b  

2016-11-19 12:03:24 145

转载 vim命令

启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file2 file3 ...在vim窗口中打开一个新文件:open file在新窗口中打开文件:split file切换到下一个文件

2016-11-19 11:59:43 138

原创 makefile

Makefile里的内容:mkdir -p add/src 先建add后建srcinclude目录 :放头文件lib目录:放库文件tools目录:放工具文件doc目录:放文档scripts目录:放脚本文件       Makefile是一个脚本文件(按照内核管理源码的方法)touch add/Makefile           sub   

2016-11-17 14:54:09 137

转载 转载

makefile介绍: 让我们先来粗略地看一看Makefile的规则。[3] target … : prerequisites … command … … 目标:依赖 执行指令 … target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)。 ① prerequisites就是,要生成那个target所

2016-11-14 20:47:26 164

原创 11.12

GDB功能:1、启动被调试程序2、让被调试的程序在指定的位置停住3、当程序被停住时,可检查程序状态gcc -g test.c -o testgdb test启用gdb对test调试gdb run : 执行 testgdb list : 查看所有代码gdb quit : 退出调试gdb next: 不进入函数单步执行gdb step : 进

2016-11-13 11:23:26 179

原创 11月12号笔记

Linux  开发工具:编译器:gcc          调试器:gdb             工程管理器:make             脚本语言:shell gcc特点:(1)可编译多种语言      (2)交叉编译:当前CPU平台上在不同CPU编译(不同CPU不同汇编) 编译器的编译过程:预处理编译汇编链接 预处理:①头文件展开 ②宏替

2016-11-13 11:18:58 148

转载 程序的编译,链接和装载

《程序员的自我修养-链接装载与库》是一本值得推荐的书,主要介绍系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,C/C++运行库的工作原理,以及操作系统提供的系统服务是如何被调用的。本文主要对书

2016-11-11 22:31:48 732

原创 笔记

从键盘上获取一个字符数组用char src。写数组要定义宏:#define MAX_SIZE  。类型 数组名[数组大小]; int array[10]; char str[15];类型 数组名[]={元素1,元素2,元素3,...};1 int a={1,2,3,4,5}; char ch[]={'a','

2016-11-10 16:17:51 127

转载 网上转载

说明:以下的例子中 xxx 表示在命令模式下输入 xxx 并回车以下的例子中 :xxx 表示在扩展模式下输入 xxx 并回车小括号中的命令表示相关命令.在编辑模式或可视模式下输入的命令会另外注明.1. 查找   /xxx(?xxx)       表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示                   向

2016-11-08 22:15:43 168

原创 C语言笔记

函数是C的基本单位1.函数的定义     函数类型 ([])     {          声明部分;          执行语句部分;     }     (1)函数中不能再嵌套定义函数     (2)不论return语句返回值为何种类型,都将自动转换为函数类型     (3)空函数什么都不做2.函数调用     函数

2016-11-07 22:08:07 148

原创 感想

今天花了挺长的时间来完成老师所布置的4个编程题目。应该可以说这是我第一次自己完成编程,我看了下对我来说最简单的就是第3题:实现n的阶乘。所说C语言大一没学好,但是通过这几天的看书,自己也有了点基础。模仿着书本以及网上参考的程序,花了快10几分钟才打好程序。可是通过VM编译发现了很多错误,变遵循VM上的错误提示一个一个慢慢改,最终完成了第3题。第1,和第2题,对我来说难度很大,参考了别人的程序,

2016-11-06 22:27:47 131

原创 第3晚

文件属性:可读,可写,可执行“—”开头的为普通文件   “d”开头的为目录文件   “c或b”开头的为设备文件  “l”开头的为链接文件TAB键可自动生成命令touch hello.c  创建hello.c文件  加后缀gedit 文本编辑器       cat 查看内容或者再用编辑器gcc 编译器./+文件名     例如   ./ab.c   执行ab.crm空

2016-11-05 22:13:06 161

原创 苏嵌第二天

Linux特点:社团,免费,开放,易获得,稳定,健壮,GPL,软件可用的Linux有:红帽,乌班图ubantu,suse实时性:规定时间内完成规定动作,不能早,不能迟

2016-11-04 22:23:46 192

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除