
C/C++
酸菜白肉
Show me the f**king code, or close your f**king mouth!
展开
-
C语言的内存管理
1、内存管理的概述当程序被加载到内存的时候,它在内存中会大致被组织成三个部分:代码区,静态存储区和动态存储区。代码区存放的是将要执行的程序的机器语言表示,包括组成程序的各种用户自定义函数和系统调用函数。关于静态存储区和动态存储区:The word static refers to things that happen at compile time and link time when the原创 2013-10-24 16:16:06 · 1761 阅读 · 0 评论 -
循环链表与双向链表
1、循环链表循环链表也是一种链式存储结构,他的原创 2014-04-21 14:55:36 · 2557 阅读 · 2 评论 -
静态链表
在有些没有指针类型的语言中,可以使用一维数组来实现链表原创 2014-04-18 11:29:20 · 1463 阅读 · 0 评论 -
如何判断机器是大端还是小端
这是一篇没多少新意的文章,对big endian和little endian熟悉的人没必要看,免得浪费时间。1、概念所谓大端小端,指的是对于多字节的数据类型(比如,int)在内存中存放的字节顺序。小端是指低地址的字节存放的是数据的低位,高地址字节存放的是数据的高位。大端是指低地址字节存放的是数据的高位,高地址字节存放数据的高位。简单地说,低位字节存放数据的高位就是大端,低位就是小端。下原创 2014-03-20 23:46:38 · 1482 阅读 · 0 评论 -
C语言内存分配函数malloc、calloc和realloc
C语言中常用的内存分配函数有malloc、calloc和realloc等三个,其中,最常用的肯定是malloc,这里简单说一下这三者的区别和联系。1、声明这三个函数都在stdlib.h库文件中,声明如下:void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(si原创 2014-03-31 20:14:11 · 4889 阅读 · 0 评论 -
数据结构_栈
栈和队列是两种重要的线性结构。从数据结构的角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,它们是操作受限的线性表,因此,可以称它们为限定性的数据结构。但从数据类型角度看,它们是和线性表大不相同的两类重要的抽象数据类型。1、介绍栈(stack)是限定仅在表尾进行插入或删除操作的线性表。因此,对于栈来说,表尾端有其特殊含义,称为栈顶(top),相应地,表头端称为栈原创 2014-03-31 22:58:51 · 878 阅读 · 0 评论 -
C语言结构、联合、位操作、位域和枚举
1、结构结构是派生的数据类型,可以使用其他数据类型来构造它们。1.1 定义结构和结构类型的变量关键字struct引入了结构定义,用一个标识符作为结构标记,来命名一个结构类型。结构定义大括号内声明的变量是结构的成员。同一结构的成员必须具有具有独一无二的名称,但两个不同的结构可能包含相同名称的结构成员,而不会相互冲突。每个结构定义必须用分号结束。结构标记与关键字struct一起用来定义原创 2013-12-03 20:46:04 · 2634 阅读 · 0 评论 -
C语言中float和double的精度
助教给小伙伴们调实验的时候,碰到一个求矩阵面积交的问题,问题如下,并不复杂。问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式 输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。 输出格式 输出仅包含一个实原创 2013-12-15 12:43:35 · 12261 阅读 · 1 评论 -
C语言文件操作
内存中的数据都是暂时的,当程序结束时,它们都将丢失。为了永久性的保存大量的数据,C语言提供了对文件的操作。1、文件和流C将每个文件简单地作为顺序字节流(如下图)。每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中。当打开文件时,就建立了和文件的关系。在开始执行程序的时候,将自动打开3个文件和相关的流:标准输入流、标准输出流和标准错误。流原创 2013-12-15 18:00:05 · 11000 阅读 · 4 评论 -
C语言格式化输入输出
C语言中,格式化的输入输出由其标准库中的scanf和printf函数实现,下面分别介绍。1、用printf格式化输出用printf可以完成准确的格式化输出。每个printf调用包含说明输出格式的格式控制字符串。格式控制字符串包含格式转换符、标志、字段宽度、精度和字面量字符(literal character),和前面的%一起,这些就构成了格式转换规格。printf函数的形式是print原创 2013-11-30 15:18:09 · 8987 阅读 · 0 评论 -
C语言中的字符和字符串
C语言中的字符类型为char,C语言中对于字符串的处理则是通过字符数组实现的。和一般字符数组的区别在于,每一个字符串(本质上来说应该是字符数组)的最后一个元素都是'\0',根据这个特点,C语言便可以判断字符串的结束。1、字符串和数的转换1.1 函数原型double atof(const char *nPtr);将字符串nPtr转换为doubleint atoi(const char原创 2013-11-26 20:16:30 · 2819 阅读 · 0 评论 -
C语言指针
指针变量是包含内存地址的变量,它指向内存中的一块区域,通过指针的值,可以间接访问到相应的内存单元的数据,并做相应的修改。1、指针的定义和简单使用定义一个指针变量和定义一般的变量类似,只需在变量名前面加一个“*”。对一个指针变量赋值可以用取地址符&来获取到一个变量的地址,如果要获得指针指向的内存区域的数据,用解参考运算符*(也称为间接运算符,它返回其操作数指向的对象的值)。指针的值为NULL原创 2013-11-21 10:41:26 · 1768 阅读 · 0 评论 -
C语言中scanf函数与空格回车
众所周知,C语言中的scanf函数的作用是从标准输入设备(通常是键盘)读取输入值,并存储到参数列表中指针所指向的内存单元。下面从几个方面说一下一些稍微细节的东西。下面的实验都在vc6.0中通过。1、scanf的返回值scanf通常返回的是成功赋值(从标准输入设备赋值到参数列表所指定的内存区域)的数据项数,如果出错或是遇到end of file(注意,如果想从键盘输入EOF,在windows原创 2013-11-08 23:21:21 · 21077 阅读 · 7 评论 -
C语言存储类别(Storage Class)
C语言中,存储类别(Storage Class)是一个标识符(也就是说函数和变量)的重要属性。存储类别决定着一个函数或变量的作用域(Scope,即可见性)和生命周期(Life time)。C语言中,主要有四种存储类别,即auto、register、static和extern,下面将一一说明。1、auto局部变量的缺省存储类别是auto,也就是说,下面两个变量的定义在存储类别层面对编译器来说原创 2013-10-28 22:21:34 · 5653 阅读 · 0 评论 -
数据结构_线性表
线性结构有这样的特点,在数据元素的非空有限集中:(1)存在唯一的一个被称作“第一个”的元素;(2)存在唯一的一个被称作“最后一个”的数据元素;(3)除第一个之外,集合中的每个数据元素均只有一个前驱;(4)除最后一个之外,集合中的每个数据元素均只有一个后继。1、介绍线性表(linear List)是最常用而且最简单的一种数据结构,简单地说,一个线性表是n个数据元素的有限序列。在稍微复杂的线性原创 2014-04-09 12:42:08 · 4213 阅读 · 0 评论