
C/C++
Xer兵
这个作者很懒,什么都没留下…
展开
-
static,print,指针
static 有三个作用(1) 修饰全局变量。改变变量的作用域,只能在当前文件被调用,其他文件不能调用。(2) 修饰函数。 改变函数的作用域,只能在当前文件被调用,其他文件不能调用。(3) 修饰局部变量,改变变量的生命周期,直到程序结束才能释放。改变变量的生命周期,直到程序结束才能被释放(释放的是栈空间)。被static修饰的局部变量,存放在数据段(静态数据区)。 关于p...原创 2018-07-25 20:52:40 · 395 阅读 · 0 评论 -
【C/C++】【数据结构】单链队列操作
单链队列操作单链队列和单链表很相似。除了单链表具有的一些特性,单链队列还有两个分别指向队头和队尾的指针,就像是多了一种访问手段的单链表。(个人认为)利用单链队列进行操作前,除了要声明链表节点信息的结构体,成员为数据域和指针域,还要要声明一个代表队列信息的结构体,成员为队头指针和队尾指针。为了操作方便,也给单链队列添加了一个头结点。空的单链队列的判决条件为队头指针和队尾指针均指向头结点。...原创 2018-08-10 20:13:18 · 1062 阅读 · 0 评论 -
【C/C++】【数据结构】二叉树的基本操作
二叉树的基本操作 按前辈们的说法,在嵌入式的开发中并不用得到二叉树。在次就仅仅对二叉树的基本操作作简单介绍。二叉树性质 (1)第 i 层最多有 2^(i-1) 个节点。(2)深度为 k 的二叉树至多有 2^k - 1 个节点。(3)若一个二叉树终端节点个数为 n,度为 2 的节点个数为 m,则有 n = m+1。(4)有 n 个节点的完全二叉树深度为 log2(n) + 1...原创 2018-08-11 21:43:02 · 1379 阅读 · 1 评论 -
【C/C++】【数据结构】顺序表
顺序表也是线性表,具有线性结构。线性结构分为两种,一是顺序存储,在内存中是连续的;二是链式存储,在内存中是不连续的。 顺序表的特点:(1) 除第一个元素外,其他所有元素都只有一个直接前驱。(2) 除最后一个元素外,其他所有元素都只有一个直接后继。 顺序表有容量和长度两个属性。长度指的是,顺序表中有效元素的个数。容量指的是顺序表中最大的可能长度。若顺序表中的有效元素为0,...原创 2018-08-02 20:38:45 · 576 阅读 · 1 评论 -
【C/C++】【数据结构】双向链表操作
目录双向链表操作头文件定义双向链表的初始化双向链表的插入 双线链表求链表长度双向链表的判空双向链表的遍历 双向链表的查找(通过位置求值)双向链表的检索(通过值求位置)双向链表的删除 双向链表的重置双向链表的销毁测试文件双向链表操作像双向链表的求长,判空,遍历,查找,检索,之类的操作都和单链表一样的。不过我还是在了文中。头文件定义...原创 2018-08-07 20:48:38 · 1268 阅读 · 0 评论 -
【C/C++】【数据结构】链式栈操作
目录链式栈操作头文件定义链式栈初始化链式栈判空链式栈入栈操作链式栈获取栈顶数据链式栈出栈操作链式栈重置链式栈销毁链式栈操作头文件定义#ifndef _LINKSTACK_H_#define _LINKSTACK_H_#include<stdlib.h>#define SUCCESS 10000#define FAILURE...原创 2018-08-08 19:02:47 · 532 阅读 · 0 评论 -
【C/C++】【Linux】Linux系统调用——文件访问
Linux系统调用——文件访问 函数用法 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int creat(const char *filename, mode_t mode) 函数功能 创建文件 fil...原创 2018-08-15 21:18:31 · 1540 阅读 · 1 评论 -
【C/C++】【Linux】Linux系统调用列表
转载自:https://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.htmlLinux系统调用列表 以下是Linux系统调用的一个列表,包...转载 2018-08-15 20:29:56 · 1233 阅读 · 0 评论 -
【C/C++】【Linux】Linux系统调用——进程控制
Linux系统调用——进程控制 什么是进程? 进程是资源分配的最小单元,是一个具有一定独立功能的程序的一次运行活动。每个进程都是一个独立的运行单元。 进程与程序的区别?(1)程序是放到磁盘的可执行文件,进程是指程序执行的实例。(2)进程是动态的,程序是静态的。程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和...原创 2018-08-16 15:41:32 · 1591 阅读 · 3 评论 -
【C/C++】【数据结构】八大排序
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插入排序&amp;amp;nbsp;插入排序示意图插入排序是一种最简单直观的排序算法,它的工作原理是通过...转载 2018-08-13 19:21:47 · 2618 阅读 · 1 评论 -
【C/C++】【Linux】Linux系统调用——进程间通信
Linux系统调用——进程间通信进程间通信概述进程间通信(InterProcess Communication,IPC)是指在不同进程之间传播或交换信息。Linux的进程间通信方法有管道(Pipe)和有名管道(FIFO)、信号(Signal)、消息队列(Message Queue)、共享内存(Shared Memory)、信号量(Semaphore)、套接字(Socket)等。Li...原创 2018-08-19 11:14:52 · 7758 阅读 · 2 评论 -
Linux下清空缓冲区的方法
转载自:http://m.blog.youkuaiyun.com/blog/yanbober/8720542 C标准规定fflush()函数是用来刷新输出(stdout)缓存的。对于输入(stdin),它是没有定义的。但是有些编译器也定义了fflush( stdin )的实现,比如微软的VC。其它编译器是否也定义了fflush( stdin )的实现应当查找它的手册。 GCC编译器没有定义...转载 2018-08-01 20:41:58 · 2524 阅读 · 0 评论 -
【C/C++】【数据结构】通讯录——链表实现
实现功能有:1.新建,添加联系人,理论上没有上限2.查看当前通讯录内所有联系人3.以名字为索引查找联系人4.以名字为索引修改联系人5.以名字为索引删除联系人6.按名字ASCII码值从小到大排序7.按下按键esc退出8.十分贴心地把字体调成了红色。 头文件 linkbook.h#ifndef _LINKBOOK_H#define _LINK...原创 2018-08-05 22:37:57 · 1976 阅读 · 0 评论 -
【C/C++】进制转换
1.十进制转二-九进制void DecToNum(int dec, int hex) //dec 代表十进制数,hex代表要转成什么进制{ if(dec) { DecToAny(x / hex, hex); printf("%d", x % hex); }}3.二-九进制转十进制void NumToDec(int num,...原创 2018-07-28 20:53:38 · 639 阅读 · 0 评论 -
结构体和联合体
结构体结构体是一些值的集合,这些值成为它的成员。这和数组有些类似。结构体和数组最大的不同是,数组的元素都是相同类型的,而结构体里的成员可以具有不同的类型。数组元素可以通过下标来访问,而结构体成员长度可能不同,所以不能通过下标访问。每个结构体成员都有自己的名字,所以结构体成员是通过名字访问的。结构体变量属于标量,所以可以向对其他标量一样对结构体变量进行操作。 1. 结构体...原创 2018-07-29 21:17:09 · 314 阅读 · 0 评论 -
C语言#define的用法整理
#define简单定义#define指令被称为宏定义,在C程序编译的第一个步骤预处理阶段被编译,其作用就是替换任意文本。它的最简单的用法,用来定义数值宏常量#define PI 3.14在这条指令之后出现的任何字符 PI 都会被预处理器替换为 3.14。比如说下面这条指令C = 2 * PI * 10;编译器在处理这条代码之前,会先把 PI 替换成 3.14 然后在...原创 2018-07-26 21:13:09 · 24310 阅读 · 4 评论 -
【C/C++】【数据结构】直接插入排序
插入排序是把一个记录插入到有序序列中,仍使该序列有序,并且长度增加1。插入排序中最简单的排序方法是直接插入排序。头文件及其他函数代码见https://blog.youkuaiyun.com/qq_42379345/article/details/81366150直接插入排序函数int ListInsertSort(SqList *list, ElemType elem, int (*p)(E...原创 2018-08-03 20:30:44 · 434 阅读 · 0 评论 -
随机分组C程序
随机分组程序#include<stdio.h>#include<string.h>#include<time.h>#include<stdlib.h>int main(){ char *name[]={"曾从威","蒋恺均","刘江涛","崔雅倩","祝秋培","吴原创 2018-07-18 21:01:54 · 1889 阅读 · 0 评论 -
C语言数据类型与运算符
上午学习了c语言的数据类型、变量、常量等,下午学习了运算符以及结构语句if switch for while;不同的机子的数据类型所占字节略有区别,32位Linux系统下 int 4Byte,short 2Byte,long 4Byte,float 4Byte,double 8Byte,char 1 Byte数据类型还分为 ,有符号和无符号对不同数据类型的混合运算,最后结果的数...原创 2018-07-21 20:40:38 · 689 阅读 · 0 评论 -
链表和内存管理
链表链表由一个个节点组成。链表中的每一个节点的数据类型为结构体类型,节点有两个成员:数据域和指针域。数据域存放数据成员,指针域指向下一个节点地址。链表按此结构对各节点的访问需从链表的头找起,后续节点的地址由当前节点给出。单链表有一个头节点head,指向链表在内存的首地址。无论在表中访问那一个节点,都需要从链表的头开始,顺序向后查找。链表的尾节点由于无后续节点,其指针域为空,写作为NULL。...原创 2018-07-31 21:05:41 · 2496 阅读 · 1 评论 -
通讯录——结构体指针数组实现
实现功能有:1.新建,添加联系人,在达到上限时输出book full!(存储上限可以通过改变宏定义里MAXSIZE的值来实现,为了测试方便,目前的 MAXSIZE = 3)2.查看当前通讯录内所有联系人3.以名字为索引查找联系人4.以名字为索引修改联系人5.以名字为索引删除联系人6.按名字ASCII码值从小到大排序7.按下按键esc退出8.十分贴心地把字体调成了红...原创 2018-07-30 22:30:57 · 334 阅读 · 3 评论 -
【C/C++】【数据结构】单链表操作
目录头文件定义单链表初始化单链表插入头插法尾插法中间插入单链表求链表长度单链表判空单链表遍历 单链表查找(通过位置求值)单链表检索(通过值求第一次出现的位置)单链表删除单链表重置 单链表销毁 反转单链表 测试文件头文件定义#ifndef _LINKLIST_H_#define _LINKLIST_H_#include ...原创 2018-08-04 20:51:58 · 851 阅读 · 0 评论 -
指针与数组,与函数,与指针
指针数组指针数组就是一个数组,这个数组里面的元素是指针。一般形式为: 类型标识符 * 数组名[数组长度]比如int *array[10];上例中,[ ] 优先级高,与左边的array合并成为数组,array是数组名,int *说明这个数组是一个整型指针数组,这个数组里面的所有元素都是指向整型的指针。 数组指针数组指针又称行指针,是一个指针,这个指针指向一个数组的首...原创 2018-07-27 21:16:07 · 159 阅读 · 0 评论 -
C语言之数组、字符串、函数
数组的基本定义:数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 一维数组数组在内存中是连续的下面是 int a[5] 的内存示意图.一维数组的创建与初始化int array[5];注: 数组的操作符为 [ ] 而非 ( ) 或 { } , 在创建数组时, 如果没有对数组初始化, 则 [ ] 内必须要有一个常量。注:数组的第一个元素的下标为0;...原创 2018-07-23 20:21:33 · 334 阅读 · 0 评论 -
【C/C++】【Linux】Linux系统调用——线程控制
Linux系统调用——线程控制什么叫线程?线程是CPU调度和分派的基本单位。是比进程更小的能独立运行的基本单位。除了一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),线程基本上不拥有系统资源,但可与同属一个进程的其他线程共享进程所拥有的全部资源。 线程与进程的区别?线程的优缺点?(1)进程是系统资源分配的最小单位,线程是CPU调度和分派的基本单位。(2)进程拥有独...原创 2018-08-22 17:30:13 · 646 阅读 · 0 评论