自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

原创 第十二课,课后练习

专题三:渐入佳境。包括以下章节:无招胜有招-静态链表气宗门道-循环链表剑宗门道-双向链表课后练习静态链表的改进将数组中的空闲结点链接成空闲链表 优势:插入新元素时,可以直接得到空闲位置。实现双向循环链表提示 - 注意头结点的插入和删除 - 注意尾结点的插入和删除面试题精选在无表头结点的单链表中,无法直接知道长度length写程序找出链表的中间结点要求:只能遍历一次链表

2017-06-21 22:55:57 367 1

原创 第十一课,双向链表

专题三:渐入佳境。包括以下章节:无招胜有招-静态链表气宗门道-循环链表剑宗门道-双向链表课后练习单链表的局限单链表的结点都只有一个指向下一个结点的指针单链表的数据元素无法直接访问其前驱元素逆序访问单链表中的元素是极其耗时的操作!!!len = LinkList_Length(list);for(i=len-1;len>=0;i--){ LinkListNode* p= Li

2017-06-21 22:50:59 338

原创 第十课,循环链表

专题三:渐入佳境。包括以下章节:无招胜有招-静态链表气宗门道-循环链表剑宗门道-双向链表课后练习单链表的局限单链表可以用于表示任意的线性关系有些线性关系是循环的,即没有队尾元素单链表的改进循环链表的定义将单链表中最后一个数据元素的next指针指向第一个元素循环链表的操作循环链表拥有单链表的所有操作创建链表销毁链表获取链表长度清空链表获取第pos个元素操作插入元素到位置

2017-06-21 22:38:47 396

原创 第九课,静态链表

专题三:渐入佳境。包括以下章节:无招胜有招-静态链表气宗门道-循环链表剑宗门道-双向链表课后练习思考单链表完美解决了顺序表的问题!还有其它改进顺序表的方法吗?单链表的相对劣势单链表的实现严重依赖指针! 数据元素中必须包含一个额外的指针域! 没有指针的程序设计语言无法实现!顺序表的改进静态链表的定义顺序表数组中的元素由两个数据域组成:data和nextdata域用于存储数据next

2017-06-21 22:24:37 474 1

原创 第八课,线性表的链式存储结构

专题二:初探门径。包括以下章节:线性表的本质线性表的相关操作线性表的顺序存储结构线性表的链式存储结构思考顺序表的最大问题是插入和删除需要移动大量的元素!链式存储结构链式存储定义 为了表示每个数据元素与其直接后继元素之间的逻辑关系,每个元素除了存储本身的信息外,还需要存储指示其直接后继的信息。 链式存储逻辑结构 n个结点链接成一个链式线性表的结构叫做链表,当每个结点中只包含一个指针域时

2017-06-21 21:56:03 349

原创 第七课,线性表的顺序存储结构

专题二:初探门径。包括以下章节:线性表的本质线性表的相关操作线性表的顺序存储结构线性表的链式存储结构顺序存储结构1、顺序存储定义 - 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。 2、在C语言中可以用一维数组来实现顺序存储结构 - 存储空间的起始位置:数组node - 线性表的最大容量:数组长度MAXSIZE -

2017-06-21 21:25:04 319

原创 第六课,线性表的相关操作

专题二:初探门径。包括以下章节:线性表的本质线性表的相关操作线性表的顺序存储结构线性表的链式存储结构线性表的操作线性表的一些常用操作 - 1.创建线性表 - 2.销毁线性表 - 3.清空线性表 - 4.将元素插入线性表 - 5.将元素从线性表中删除 - 6.获取线性表中某个位置的元素 - 7.获取线性表的长度线性表操作的

2017-06-21 16:36:15 1320

原创 第五课,线性表的本质

专题二:初探门径。包括以下章节:线性表的本质线性表的相关操作线性表的顺序存储结构线性表的链式存储结构线性表的定义线性表(List)是零个或多个数据元素的集合线性表中的数据元素之间是有顺序的线性表中的数据元素个数是有限的线性表中的数据元素的类型必须相同定义 线性表是具有相同类型的 n( ≥ 0)个数据元素的有限序列(a0, a1, …, an)ai是表项,n是表长度线性表的

2017-06-21 16:28:00 429

原创 简历编写及面试技巧解析

最终的胜利专题七:最终的胜利。包括以下章节:你懂C,请进军C++的世界笑傲面试简历编写及面试技巧解析简历编写技巧简历要注意篇幅不能太长,内容一定要客观真实 简历真实不代表把自己的一切缺点弱项写进去简历上要注明求职职位,言辞要简洁直白 简历要有针对性,不要一份简历到处投不要再简历上写薪水要求简历的文字排版,格式不要出现错误,也不要太花哨 不要写太多个人情况不要用怪异字体不要过

2017-06-20 22:12:13 518

原创 笑傲面试

最终的胜利专题七:最终的胜利。包括以下章节:你懂C,请进军C++的世界笑傲面试简历编写及面试技巧解析实例分析2-1: 指针运算2-1.c#include <stdio.h>void main(){ int TestArray[5][5] = { {11,12,13,14,15}, {16,17,18,19,20},

2017-06-20 22:05:32 364

原创 进军C++的世界

最终的胜利专题七:最终的胜利。包括以下章节:你懂C,请进军C++的世界笑傲面试简历编写及面试技巧解析c++与c比较有主要两个区别: 1,编译器类型加强; 2,引入了面向对象的概念。初识OOP(面向对象编程思想)类和对象是面向对象中的两个基本概念“类”指的是一类事物,是一个抽象的概念“对象”指的是属于某个类的一个实体,是一个具体存在的事物 类是一种“模板”,可以通过这种模板创建出不

2017-06-20 17:27:08 307

原创 函数设计技巧

函数(C语言的核心)专题六:函数(C语言的核心)。包括以下章节:认清函数的真面目可变参数列表李逵和李鬼函数调用行为函数递归详解函数设计技巧函数设计技巧不要在函数中使用全局变量;尽量让函数从意义上是一个独立的功能模块参数名要能够体现参数的意义 例1:void str_copy (char *str1, char *str2); 例2:void str_copy (char *st

2017-06-20 17:04:35 319

原创 函数递归详解

函数(C语言的核心)专题六:函数(C语言的核心)。包括以下章节:认清函数的真面目可变参数列表李逵和李鬼函数调用行为函数递归详解函数设计技巧递归概述递归是数学领域中概念在程序设计中的应用递归是一种强有力的程序设计方法递归的本质为函数内部在适当的时候调用自身递归函数C递归函数有两个主要的组成部分:递归点 – 以不同参数调用自身出口– 不在递归调用实例分析5-15-1.c#in

2017-06-20 16:49:36 598

原创 函数调用行为

函数(C语言的核心)专题六:函数(C语言的核心)。包括以下章节:认清函数的真面目可变参数列表李逵和李鬼函数调用行为函数递归详解函数设计技巧活动记录活动记录是函数调用时用于记录一系列相关信息的记录临时变量域:用来存放临时变量的值,如k++的中间结果局部变量域:用来存放函数本次执行中的局部变量机器状态域:用来保存调用函数之前有关机器状态的信息,包括各种寄存器的当前值和返回地址等;实

2017-06-20 16:35:53 531

原创 宏分析(李逵和李鬼)

函数(C语言的核心)专题六:函数(C语言的核心)。包括以下章节:认清函数的真面目可变参数列表李逵和李鬼函数调用行为函数递归详解函数设计技巧李逵 VS 李鬼3-1.c#include <stdio.h>#define RESET(p, len) while( len > 0) ((char*)p)[--len] = 0void reset(void* p, int len){

2017-06-20 16:11:16 581

原创 可变参数分析

函数(C语言的核心)专题六:函数(C语言的核心)。包括以下章节:认清函数的真面目可变参数列表李逵和李鬼函数调用行为函数递归详解函数设计技巧问题如何编写一个可以计算n个数平均值的函数?2-1.c#include <stdio.h>float func(int array[], int size){ int i = 0; float avr = 0; for(i=0

2017-06-20 15:42:20 353

原创 认清函数的真面目

函数(C语言的核心)专题六:函数(C语言的核心)。包括以下章节:认清函数的真面目可变参数列表李逵和李鬼函数调用行为函数递归详解函数设计技巧C语言中的函数函数的由来函数的意义1、模块化程序设计2、C语言中的模块化面向过程的程序设计面向过程是一种以过程为中心的编程思想首先将复杂的问题分解为一个个容易解决的问题分解过后的问题可以按照步骤一步步完成函数是面向过程在C语言中的体现解决问

2017-06-20 15:19:26 312

原创 野指针和内存操作分析

内存管理的艺术专题五:内存管理的艺术。包括以下章节:动态内存分配程序中的三国天下程序的内存布局头疼的野指针经典错误,你犯了吗?交通规则,还是应该遵守初识野指针野指针通常是因为指针变量中保存的值不是一个合法的内存地址而造成的野指针不是NULL指针,是指向不可用内存的指针NULL指针不容易用错,因为if语句很好判断一个指针是不是NULLC语言中没有任何手段可以判断一个指针是否为野指

2017-06-20 11:34:09 500

原创 程序的内存布局

内存管理的艺术专题五:内存管理的艺术。包括以下章节:动态内存分配程序中的三国天下程序的内存布局头疼的野指针经典错误,你犯了吗?交通规则,还是应该遵守程序文件的一般布局代码在可执行程序中的对应关系程序的内存布局文件布局在内存中映射各个段的作用堆栈段在程序运行后才正式存在,是程序运行的基础.bss段存放的是未初始化的全局变量和静态变量.text段存放的是程序中的可执行代码.

2017-06-19 22:56:28 263

原创 程序中的三国天下

内存管理的艺术专题五:内存管理的艺术。包括以下章节:动态内存分配程序中的三国天下程序的内存布局头疼的野指针经典错误,你犯了吗?交通规则,还是应该遵守程序中的栈栈是现代计算机程序里最为重要的概念之一栈在程序中用于维护函数调用上下文,没有栈就没有函数,没有局部变量 栈保存了一个函数调用所需的维护信息函数参数,函数返回地址局部变量函数调用上下文程序中的堆为什么有了栈还需要堆?

2017-06-19 22:21:10 368

原创 动态内存分配

内存管理的艺术专题五:内存管理的艺术。包括以下章节:动态内存分配程序中的三国天下程序的内存布局头疼的野指针经典错误,你犯了吗?交通规则,还是应该遵守为什么使用动态内存分配C语言中的一切操作都是基于内存的变量和数组都是内存的别名,如何分配这些内存由编译器在编译期间决定 定义数组的时候必须指定数组长度而数组长度是在编译期就必须决定的需求:程序运行的过程中,可能需要使用一些额外的内

2017-06-19 21:42:27 242

原创 函数与指针分析

指针和数组(下)专题四:指针和数组(下)。包括以下章节:指针数组和数组指针分析多维数组和多维指针数组参数和指针参数分析函数与指针分析函数类型C语言中的函数有自己特定的类型函数的类型由返回值,参数类型和参数个数共同决定例:int add(int i, int j)的类型为int(int, int)C语言中通过typedef为函数类型重命名typedef type name(parame

2017-06-19 17:58:15 315

原创 数组参数和指针参数分析

指针和数组(下)专题四:指针和数组(下)。包括以下章节:指针数组和数组指针分析多维数组和多维指针数组参数和指针参数分析函数与指针分析思考为什么C语言中的数组参数会退化为指针?退化的意义C语言中只会以值拷贝的方式传递参数//传一个指针(传址),也是一个值当向函数传递数组时,不能把整个数组拷贝一份传入函数,而应该将数组名看做常量指针传入函数C语言以高效为最初设计目标,在函数传递的时候

2017-06-19 16:35:11 492

原创 多维数组和多维指针

指针和数组(下)专题四:指针和数组(下)。包括以下章节:指针数组和数组指针分析多维数组和多维指针数组参数和指针参数分析函数与指针分析指向指针的指针指针变量在内存中会占用一定的空间可以定义指针来保存指针变量的地址值为什么需要指向指针的指针? 指针在本质上也是变量对于指针也同样存在传值调用与传址调用实例分析2-1:多级指针的分析与使用2-1.c#include <stdio.h>

2017-06-19 16:01:50 516

原创 指针数组和数组指针分析

指针和数组(下)专题四:指针和数组(下)。包括以下章节:指针数组和数组指针分析多维数组和多维指针数组参数和指针参数分析函数与指针分析思考下面声明合法吗1-1.c#include<stdio.h>int main(){ int array[5]; int matrix[3][3]; int* pa = array; //合法:array代表数组第一个元素的指针,即

2017-06-19 14:09:12 297

原创 C语言中的字符串

指针和数组(上)专题四:指针和数组(上)。包括以下章节:指针基础数组基础数组与指针分析C语言中的字符串C语言中的字符串从概念上将,C语言中没有字符串数据类型在C语言中使用字符数组来模拟字符串C语言中字符串是以’\0’结束的字符数组C语言中的字符串可以分配在栈空间、堆空间、只读存储区4-1.c#include<stdio.h>#include<malloc.h>int main(

2017-06-19 11:09:57 429

原创 数组与指针分析

指针和数组(上)专题四:指针和数组(上)。包括以下章节:指针基础数组基础数组与指针分析C语言中的字符串数组的本质数组是一段连续的内存空间数组的空间大小为sizeof(array_type) * array_size数组名可看做指向数组第一个元素的指针指针的运算指针是一种特殊的变量,与整数的运算规则为: p + n; <==> (unsigned int)p + n * siz

2017-06-16 18:21:57 267

原创 数组基础

指针和数组(上)专题四:指针和数组(上)。包括以下章节:指针基础数组基础数组与指针分析C语言中的字符串数组的概念数组是相同类型的变量的有序集合int a[5] = {1,2};//1,int指数组存储元素都是int类型的数据//2,a指数组的名字(这20个字节空间的名字),也代表数组第一个元素起始地址(a是一个指针,存储第一个元素的地址)。//3,[5]指数组中有5个元素//4

2017-06-16 16:41:10 283

原创 指针基础

指针和数组(上)专题四:指针和数组(上)。包括以下章节:指针基础数组基础数组与指针分析C语言中的字符串变量回顾变量是一段存储空间的别名,那么访问这段空间必须使用这个别名吗?int main(){ int i = 6; int* p = &i; //结果:6, BFC1C3BC printf("%d, %08X\n", i, p); //通过*运算也

2017-06-16 14:15:20 214

原创 #和##运算符使用解析

编译预处理专题三:编译预处理。包括以下章节:编译过程简介宏定义与宏使用分析条件编译使用分析#error和#line#pragma预处理分析#和##运算符使用解析#运算符#运算符用于预编译期将宏参数转换为字符串6-1.c#include <stdio.h>#define CONVERS(x) #xint main(){ printf("%s\n", CONVERS(Hello

2017-06-15 23:18:29 420

原创 #pragma预处理分析

编译预处理专题三:编译预处理。包括以下章节:编译过程简介宏定义与宏使用分析条件编译使用分析#error和#line#pragma预处理分析#和##运算符使用解析#pragma#pragma是编译器指示字,用于指示编译器完成一些特定的动作#pragma所定义的很多指示字是编译器和操作系统特有的#pragma在不同的编译器间是不可移植的 预处理器将忽略它不认识的#pragma指令

2017-06-15 18:18:39 299

原创 #error和#line

编译预处理专题三:编译预处理。包括以下章节:编译过程简介宏定义与宏使用分析条件编译使用分析#error和#line#pragma预处理分析#和##运算符使用解析#error用法#error用于生成一个编译错误消息,并停止编译用法:#error message(message不需要使用双引号)#weaning用于生成一个编译警告信息,不会停止编译实例分析4-14-1.c#incl

2017-06-15 17:18:27 403

原创 条件编译使用分析

编译预处理专题三:编译预处理。包括以下章节:编译过程简介宏定义与宏使用分析条件编译使用分析#error和#line#pragma预处理分析#和##运算符使用解析基本概念条件编译的行为类似于c语言中的if…else…语句条件编译是预编译指示命令,用于控制编译哪一段代码条件编译对预编译器起作用;if…else…在运行时起作用#if()…#else…#endif 判断条件表达式#

2017-06-15 16:45:36 351

原创 宏定义与宏使用分析

编译预处理专题三:编译预处理。包括以下章节:编译过程简介宏定义与宏使用分析条件编译使用分析#error和#line#pragma预处理分析#和##运算符使用解析宏定义常量#define定义的宏常量可以出现在代码的任何地方从定义宏开始,之后的代码都可以使用这个宏常量以下定义的宏定义是否正确? 2-1.c#define ERROR -1#define PI 3.1415926#d

2017-06-15 15:20:21 1052

原创 编译过程简介

编译预处理专题三:编译预处理。包括以下章节:编译过程简介宏定义与宏使用分析条件编译使用分析#error和#line#pragma预处理分析#和##运算符使用解析你不知道的事gcc file.c file.h命令的过程 预编译处理所有的注释,用空格替换处理#define宏定义:删除所有宏定义,展开所有宏定义处理条件编译指令#if,#ifdef,#elif,#else,#elsei

2017-06-15 11:01:06 290

原创 优先级和类型转换分析

符号的技巧专题二:符号的技巧。包括以下章节:注释符号接续符和转义符单引号和双引号逻辑运算符使用分析位运算符分析++、–操作符使用分析优先级和类型转换分析优先级#include<stdio.h>#include<malloc.h>typedef struct _demo{ int* pInt; float f;}DEMO;int func(int v, int m

2017-06-14 22:56:02 420

原创 ++、--操作符使用分析

符号的技巧专题二:符号的技巧。包括以下章节:注释符号接续符和转义符单引号和双引号逻辑运算符使用分析位运算符分析++、–操作符使用分析优先级和类型转换分析问题int = 3; (++i)+(++i)+(++i)=? c语言灰色地带6-1.c#include<stdio.h>int main(){ int i = 3; //(++i)+(++i)+(++i)=?

2017-06-14 18:18:14 324

原创 位运算符分析

符号的技巧专题二:符号的技巧。包括以下章节:注释符号接续符和转义符单引号和双引号逻辑运算符使用分析位运算符分析++、–操作符使用分析优先级和类型转换分析位运算符分析位运算符遵循结合律和交换律 结合律: a&b&c <=> (a&b)&c <=> a&(b&c) 交换律: a&b <=> b&a左移运算符<<将运算数的二进制位左移 规则:高位丢弃,低位补0右移运算符>>将

2017-06-14 17:47:59 389

原创 逻辑运算符使用分析

符号的技巧专题二:符号的技巧。包括以下章节:注释符号接续符和转义符单引号和双引号逻辑运算符使用分析位运算符分析++、–操作符使用分析优先级和类型转换分析问题逻辑运算符&&、||、!=真的很简单吗?#include <stdio.h>int main(){ int i = 0; int j = 0; //短路规则:从左向右计算,当遇到条件表达式为真时,就不

2017-06-14 16:51:42 394

原创 单引号和双引号

符号的技巧专题二:符号的技巧。包括以下章节:注释符号接续符和转义符单引号和双引号逻辑运算符使用分析位运算符分析++、–操作符使用分析优先级和类型转换分析问题讨论这个问题有意义吗?#include <stdio.h>int main(){ char* p1 = 1; //p1指向内存地址为1的地方。 char* p2 = '1';//p2指向内存地址为49的地方(

2017-06-14 16:03:29 446

C程序设计语言(完美中文版).pdf

C程序设计语言(完美中文版).pdf,帮你学好c语言

2012-03-23

fonts-chinese-3.02-12.el5.noarch.rpm

linux汉化文件fonts-chinese-3.02-12.el5.noarch.rpm用于汉化,解决乱码问题

2012-03-23

空空如也

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

TA关注的人

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