自定义博客皮肤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)
  • 收藏
  • 关注

原创 C++基础知识 课堂复习

1.变量定义位置C语言中,所有局部变量必须在函数开头定义;C++中只要在使用之前定义好就可以;2.布尔类型布尔类型是用于判断执行结果的数据类型,它的判断比较结果只有两种情况:0和非0。C++中定义0为假,非0为真,使用关键字bool定义布尔型变量。要能够正确理解char,short ,int ,long ,float ,double等类型的字节数;int  a = 5;

2017-07-06 20:02:51 290

转载 Linux下进程的建立

我们都知道,进程就是正在执行的程序。而在Linux中,可以使用一个进程来创建另外一个进程。这样的话,Linux的进程的组织结构其实有点像Linux目录树,是个层次结构的,可以使用pstree命令来查看。在最上面是init程序的执行进程。它是所有进程的老祖宗。Linux提供了两个函数来创建进程。1.fork()  fork()提供了创建进程的基本操作,可以说它是Linux系统

2017-06-26 22:39:06 296

转载 linux之进程管理详解

|-进程管理        进程常用命令        |- w查看当前系统信息        |- ps进程查看命令        |- kill终止进程        |- 一个存放内存中的特殊目录/proc        |- 进程的优先级        |- 进程的挂起与恢复        |- 通过top命令查看进程 

2017-06-25 09:25:14 697

转载 C语言中scanf(),sscanf(),fscanf()的用法和区别

scanf(),sscanf(),fscanf()区别:第一个是从控制台(键盘)输入;第二个是从字符串输入;第三个是从文件输入;scanfscanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数.  int main(){   int a,b,c;   printf("输入:a,b,c\n");   scanf

2017-06-25 09:23:10 4046

转载 fwrite与fprintf区别、printf与fprintf区别

C语言把文件看作一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称为文本(text)文件,它的每个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内在中的存储形式原样输出到磁盘上存放。1、fprintf(fp, "%d", buffer); 是将格式化的数据写入文件fprintf(

2017-06-25 09:20:00 534

转载 Linux 系统 I/O编程-----不带缓存的I/O操作

Linux的I/O操作分为:  不带缓存的I/O操作(read(),write(),open(),lseek(),close())。  标准(带缓存)的I/O操作:(fgets(),fread(),fwrite()).文件描述符:  首先,在linux中对目录和设备都等同与于文件操作,LINUX中的文件主要分为:普通文件,目录文件,链接文件和设备文件,那么系统是怎么

2017-06-25 09:16:33 961

转载 linux多线程pthread

1.Linux线程的发展   早在LINUX2.2内核中。并不存在真正意义上的线程,当时Linux中常用的线程pthread实际上是通过进程来模拟的,也就是同过fork来创建“轻”进程,并且这种轻进程的线程也有个数的限制:最多只能有4096和此类线程同时运行。   2.4内核消除了个数上的限制,并且允许在系统运行中动态的调整进程数的上限,当时采用的是Linux Thread 线程库,它

2017-06-20 10:28:32 259

转载 mkfifo函数使用

mkfifo(建立实名管道)相关函数    pipe,popen,open,umask表头文件    #include    #include定义函数    int mkfifo(const char * pathname,mode_t mode);函数说明    mkfifo()会依参数pathname建立特殊的FIFO文件,该文件必须不存在,而参数mode为

2017-06-18 20:46:37 29714 3

转载 标准IO缓冲详解全缓冲、行缓冲、不缓冲

标准I/O库提供缓冲的目的是尽可能地减少使用read和write调用的次数。他也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/O库最令人迷惑的也是他的缓冲。标准I/O提供了三种类型的缓冲:1、全缓冲。这种情况下,在填满标准I/O缓冲区后才进行实际I/O操作。对于驻留在磁盘上的文件通常是由标准I/O库实施全缓冲。一个流上执行第一次I/O操作

2017-06-17 11:27:29 1124

转载 Linux进程管理命令介绍

执行中的程序称作进程。当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源、内存、安全属性和与之相关的状态。可以有多个进程关联到同一个程序,并同时执行不会互相干扰。操作系统会有效地管理和追踪所有运行着的进程。为了管理这些进程,用户应该能够:●查看所有运行中的进程●查看进程消耗资源●定位个别进程并且对其执行指定操作●改变进程的优先级

2017-06-16 22:58:11 315

转载 fork出的子进程和父进程

一、fork后的父子进程由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程(子进程)的进程 id。将子进程id返回给父进程的理由是:因为一个进程的子进程可以多于一个,没有一个函数使一个进程可以获得其所有子进程的进程id。对子进程来说,之所以fork返回0给它,是因为它随时可以调用

2017-06-16 22:54:59 263

转载 Linux进程通信——管道

进程间通信(IPC:Inner Proceeding Communication)进程是操作系统实现程序独占系统运行的假象的方法,是对处理器、主存、I/O设备的抽象表示。每个进程都是一个独立的资源管理单元,每个进程所看到的是自己独占使用系统的假象,因此各个进程之间是不能够直接的访问对方进程的资源的,不同的进程之间进行信息交互需要借助操作系统提供的特殊的进程通信机制。进程之间的通信,

2017-06-15 10:10:59 337

转载 C语言文件的随机读写

实现随机读写的关键是要按要求移动位置指针,这称为文件的定位。文件定位函数rewind和fseek移动文件内部位置指针的函数主要有两个,即 rewind() 和 fseek()。rewind() 用来将位置指针移动到文件开头,前面已经多次使用过,它的原型为:void rewind ( FILE *fp );fseek() 用来将位置指针移动到任意位置,它的原型为:

2017-06-13 22:00:59 2270

转载 C语言格式化读写文件

fscanf() 和 fprintf() 函数与前面使用的 scanf() 和 printf() 功能相似,都是格式化读写函数,两者的区别在于 fscanf() 和 fprintf() 的读写对象不是键盘和显示器,而是磁盘文件。这两个函数的原型为:int fscanf ( FILE *fp, char * format, ... );int fprintf ( FILE *fp

2017-06-09 22:21:17 1443

转载 C语言以数据块的形式读写文件

fgets() 有局限性,每次最多只能从文件中读取一行内容,因为 fgets 遇到换行符就结束读取。如果希望读取多行内容,需要使用 fread 函数;相应地写入函数为 fwrite。fread() 函数用来从指定文件中读取块数据。所谓块数据,也就是若干个字节的数据,可以是一个字符,可以是一个字符串,可以是多行数据,并没有什么限制。fread() 的原型为:size_t fread

2017-06-07 22:20:30 3841 1

转载 C语言以字符串的形式读写文件

fgetc() 和 fputc() 函数每次只能读写一个字符,速度较慢;实际开发中往往是每次读写一个字符串或者一个数据块,这样能明显提高效率。读字符串函数fgetsfgets() 函数用来从指定的文件中读取一个字符串,并保存到字符数组中,它的原型为:char *fgets ( char *str, int n, FILE *fp );str 为字符数组,n 为要读取的字符数

2017-06-06 22:19:02 13012

转载 C语言以字符形式读写文件

在C语言中,读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块)。以字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件中写入一个字符。主要使用两个函数:fgetc()和fputc()。字符读取函数 fgetc fgetc 是 file get char的缩写,意思是从指定的文件中读取一个字符。它的原型为:int fgetc

2017-06-03 22:21:54 678

转载 C语言文件的打开与关闭

在C语言中,文件操作都是由库函数来完成的,这节介绍文件的打开和关闭。文件的打开(fopen函数)fopen() 函数用来打开一个文件,它的原型为:FILE *fopen(char *filename, char *mode);filename为文件名(包括文件路径),mode为打开方式,它们都是字符串。fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这

2017-06-02 22:43:20 905

转载 C语言位运算

C语言提供了六种位运算符:运算符 & | ^ ~ >说明 按位与 按位或 按位异或 取反 左移 右移按位与运算(&) 一个比特(Bit)位只有 0 和 1 两个取值,只有参与&运算的两个位都为1 时,结果才为1,否则为0。例如1&1为1,0&0为0,1&0也为0,这和逻辑运算符&&非常类似。 C语言中不能直接使用二进制,&两边的操作数可以

2017-06-01 22:57:44 193

转载 C语言const:禁止修改变量的值

有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小。为了满足这一要求,可以使用const关键字对变量加以限定:const int MaxNum = 100;  //班级的最大人数这样 MaxNum 的值就不能被修改了,任何对 MaxNum 赋值的行为都将引发错误:MaxNum = 90;  //错误,试

2017-05-30 22:25:02 3018

转载 C语言位域

有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。 在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域。请看下面的例子:1.struct bs{2.    unsigned m;3.

2017-05-28 20:41:58 300 2

转载 C语言共用体(Union)

共用体(Union)是一种与结构体非常相似的语法,它的定义格式为:union 共用体名{    成员列表};共用体有时也被称为联合或者联合体,这也是 Union 这个单词的本意。结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。结构体占用的内存大于等于所有成员占用的内存的总和(

2017-05-26 22:51:04 374

转载 C语言枚举类型(Enum)

在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。以每周七天为例,我们可以使用#define命令来给每天指定一个名字:#include #define Mon 1#define Tues 2#define Wed 3#define Thur

2017-05-25 22:07:48 373

转载 C语言结构体和指针

指针也可以指向一个结构体,定义的形式一般为:struct 结构体名 *变量名;下面是一个定义结构体指针的实例:struct stu{    char *name;  //姓名    int num;  //学号    int age;  //年龄    char group;  //所在小组    float score;  //成绩} stu1 = { "To

2017-05-23 22:33:33 298

转载 C语言typedef:给类型起一个别名

C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是 stu,要想定义一个结构体变量就得这样写:struct stu stu1;struct 看起来就是多余的,但不写又会报错。如果为 struct stu 起了一个别名 STU,书写起来就简单了:STU stu1;这种写法更加简练

2017-05-22 22:49:41 925

转载 双链表

双链表定义双链表就是在单链表结点上增添了一个指针域,指向当前结点的前驱。这样就可以方便的由其后继来找到其前驱,而实现输出终端结点到开始结点的数据序列。同样,双链表也分为带头结点的双链表和不带头结点的双链表,情况类似于单链表。带头结点的双链表 head->next 为null的时候链表为空。不带头结点的双链表head为null的时候链表为空。1.采用尾插法建立双链

2017-05-21 22:20:03 373

原创 数据结构.单链表

这个代码是关于单链表的几个基本知识点的汇总,单链表的建立,插入(尾插、头插),删除等#include#include #define T 1#define F -1typedef int Type;typedef int Status;struct Node{ Type value; struct Node* next;};Status init(struct

2017-05-20 18:08:03 201

转载 C语言结构体数组

所谓结构体数组,是指数组中的每个元素都是一个结构体。在实际应用中,结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。 定义结构体数组和定义结构体变量的方式类似,请看下面的例子:struct stu{    char *name;  //姓名    int num;  //学号    int age;  //年龄    char gro

2017-05-19 14:05:10 608

转载 对C语言指针的总结

指针(Pointer)就是内存的地址,C语言允许用一个变量来存放指针,这种变量称为指针变量。指针变量可以存放基本类型数据的地址,也可以存放数组、函数以及其他指针变量的地址。 程序在运行过程中需要的是数据和指令的地址,变量名、函数名、字符串名和数组名在本质上是一样的,它们都是地址的助记符:在编写代码的过程中,我们认为变量名表示的是数据本身,而函数名、字符串名和数组名表示的是代码块或数据块的首

2017-05-19 13:58:43 175

转载 C语言指针与二维数组

二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面的二维数组 a 为例:int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };从概念上理解,a 的分布像一个矩阵:0   1   2   34   5   6   78   9  10  11但在内存中,a

2017-05-17 20:11:06 190

转载 C语言字符串处理函数

C语言提供了丰富的字符串处理函数,例如字符串的输入、输出、合并、修改、比较、转换、复制、搜索等,使用这些现成的函数可大大减轻编程的负担。用于输入输出的字符串函数,例如printf、puts、scanf、gets等,使用时应包含头文件stdio.h,使用其它字符串函数则应包含头文件string.h。字符串长度函数strlenstrlen 是 string length 的

2017-05-13 22:15:53 212

转载 C语言字符数组和字符串

用来存放字符的数组称为字符数组,例如:char a[10];  //一维字符数组char b[5][10];  //二维字符数组char c[20]={'c', '  ', 'p', 'r', 'o', 'g', 'r', 'a','m'};  // 给部分数组元素赋值char d[]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm' }; 

2017-05-12 20:43:16 571

转载 C语言数组元素的查询

对无序数组的查询所谓无序数组,就是数组元素的排列没有规律。无序数组元素查询的思路也很简单,就是用循环遍历数组中的每个元素,把要查询的值挨个比较一遍。请看下面的代码:1.#include 2.#include 3.4.int main(){5.    int nums[10] = {1, 10, 6, 296, 177, 23, 0, 100, 34, 999};6.  

2017-05-11 22:21:00 4613

转载 C语言二维数组

二维数组的定义二维数组定义的一般形式是:dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。例如:int a[3][4];定义了一个3行4列的数组,共有3×4=12个元素,数组名为a,即:a[0][0], a[0][

2017-05-09 22:29:03 828

转载 C语言指针变量的运算

指针变量保存的是地址,本质上是一个整数,可以进行部分运算,例如加法、减法、比较等,请看下面的代码:#include int main(){int a = 10,*pa = &a,*paa = &a;double b = 99.9,*pb = &b;char c = '@',*pc = &c;//最初的值pr

2017-05-08 22:32:00 254

转载 C语言数组指针(指向数组的指针)

数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示:定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第 0 个元素。在C语言中,我们

2017-05-07 20:37:10 562

转载 C语言中的基本数据类型--数据之间的混合运算

C语言的混合运算,情况较多,死记硬背必然达不到预期的效果。如果理解了如下几个问题,那C语言的混合运算问题将必然迎刃而解。       一、存储形式          在C中,整型和字符型(以ASCII码表示)都是以 二进制补码存放的,正数的补码为其本身,负数的补码为其绝对值按位取反+1;如1,以00000001存放,-1,(绝对值为1,1的反码为 11111110,反码+1,为1111

2017-05-06 21:45:34 1114

转载 C语言中int、long int、long long的区别

1、关于int 和 long int(1)在VC下没有区别。两种类型均用4个字节存放数据。(2)VC是后出的编译器,之前有很多早期的C编译器,在早期编译器下long int占4个字节,int占2个字节。(3)之所以有“整型”和“长整形”两种不同类型,是C语言在诞生时发明者规定好的,前者存储的整数的值域小于后者。 这个问题不用牵肠挂肚,在VC下用谁都可以。

2017-05-05 16:09:42 15390 2

转载 C语言指针变量的运算

指针变量保存的是地址,本质上是一个整数,可以进行部分运算,例如加法、减法、比较等,请看下面的代码:#include int main(){ int a = 10, *pa = &a, *paa = &a; double b = 99.9, *pb = &b; char c = '@', *pc = &c; //最初的值 printf("&a

2017-05-04 19:31:40 416

转载 八进制与十六进制的算法

除了二进制,编程中也经常使用八进制和十六进制。八进制有0~7共8个数字,基数为8,逢八进一,借一当八;十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有0~F共16个数字,基数为16,逢16进1,借1当16。例如:八进制 3072 = 3×83 + 0×82 + 7×81 + 2×80 = 1536 + 0 + 56 + 2 = 1594

2017-04-29 22:39:33 8381

空空如也

空空如也

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

TA关注的人

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