C
文章平均质量分 66
君临丶天下
一切皆有可能!
展开
-
strtok函数的使用注意事项
strtok函数的使用注意事项 strtok函数原创 2016-01-13 16:36:53 · 39189 阅读 · 8 评论 -
C语言实现链表之单向链表(三)创建链表
C语言实现链表之单向链表(三)创建链表 上一篇文章已经给出了第一个函数,即为结点分配内存并初始化,这篇文章将给出第二个函数,即创建链表。这个函数比较常用,但是可能需求不一样,下面看程序。/*============================================================================== * 操作 :创原创 2015-11-08 21:05:18 · 1310 阅读 · 0 评论 -
C语言实现链表之单向链表(四)清空链表
C语言实现链表之单向链表(四)清空链表 上一篇文章给出了创建链表的函数,本篇文章将给出清空链表的函数,程序如下。/*============================================================================== * 操作 :清空链表,释放结点内存,将链表重置为空表* 操作前:ppHeadNod原创 2015-11-08 21:07:05 · 7058 阅读 · 0 评论 -
C语言实现链表之单向链表(五)头结点前插入结点
C语言实现链表之单向链表(五)插入结点之头插入 上一篇文章给出了清空链表的函数,本篇文章将给出插入结点---在头结点之前插入的函数。/*============================================================================== * 操作 :在头结点之前加入一个新结点* 操作前:pHeadN原创 2015-11-08 21:07:59 · 4119 阅读 · 0 评论 -
C语言实现链表之单向链表(六)删除头结点
C语言实现链表之单向链表(六)删除头结点 上一篇文章给出了在头结点之前插入结点的函数,本篇文章将给出删除头结点的函数。/*============================================================================== * 操作 :删除头结点* 操作前:ppHeadNode为链表的头指针的二级指原创 2015-11-08 21:08:49 · 4009 阅读 · 1 评论 -
C语言实现链表之单向链表(七)尾结点后插入结点
C语言实现链表之单向链表(七)尾结点后插入结点 上一篇文章给出了删除头结点的函数,本篇文章将给出在尾结点后插入结点的函数。/*============================================================================== * 操作 :在尾结点之后加入一个新结点* 操作前:pHeadNode为链原创 2015-11-08 21:09:30 · 3985 阅读 · 0 评论 -
C语言实现链表之单向链表(八)删除尾结点
C语言实现链表之单向链表(八)删除尾结点 上一篇文章给出了在尾结点之后插入结点的函数,本篇文章将给出删除尾结点的函数。/*============================================================================== * 操作 :删除尾结点* 操作前:ppHeadNode为链表的头指针原创 2015-11-08 21:13:41 · 7584 阅读 · 1 评论 -
C语言实现链表之单向链表(九)在任意位置插入结点
C语言实现链表之单向链表(九)在任意位置插入结点 上一篇文章给出了删除尾结点的函数,本篇文章将给出在任意位置插入结点的函数。/*============================================================================== * 操作 :在任意位置插入结点* 操作前:pHeadNode为链表的头原创 2015-11-08 21:15:44 · 4970 阅读 · 0 评论 -
C语言实现链表之单向链表(十)删除任意结点
C语言实现链表之单向链表(十)删除任意结点 上一篇文章给出了插入任意结点的函数,本篇文章将给出删除任意结点的函数。/*============================================================================== * 操作 :删除任意结点* 操作前:ppHeadNode为链表的头指针的二级指针原创 2015-11-08 21:23:51 · 1616 阅读 · 1 评论 -
C语言实现链表之单向链表(二)结点内存申请及数据初始化
C语言实现链表之单向链表(二)结点内存申请及数据初始化 在上一篇文章中已经给出了整体的设计框架,现在讲逐一给出每一个函数的实现,为了一一讲解,清晰一点,将分开介绍。 本篇文章将给出MyList_Single.c---实现文件的第一个函数,即对链表中的一个结点申请内存并对其内部的数据进行初始化的函数。程序如下,由于是第一个函数,所以会给出整个文件的前面部分。原创 2015-11-07 22:13:11 · 3661 阅读 · 1 评论 -
C语言实现链表之单向链表(一)头文件
C语言实现链表之单向链表(一)头文件 链表作为一种十分常见的数据结构,其应用范围也是极广的。书本上以及网络上有很多链表的程序,但是自己用着不习惯,并且有些地方可能考虑的不是很完善,所以我自己写了一些常用数据结构的操作库,在这里分享给大家,希望可以帮助大家理解链表。 本篇文章先给出本次单向链表库的头文件,概览一下基本的结构形式和实现的功能。/****原创 2015-11-07 21:55:22 · 9872 阅读 · 0 评论 -
C中堆和栈的区别
C中堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放 ,程序结束时可能由OS回收。注意它转载 2015-11-06 22:04:30 · 673 阅读 · 0 评论 -
C语言中文件路径名的“双斜杠”和“单斜杠”的易错点(适用于C++和JAVA等语言)
路径名中到底使用“双斜杠”还是“单斜杠”? 这里主要以C语言作为例子进行介绍,C++和JAVA等其他语言基本适用。 当我们在一个程序中需要打开一个文件的时候,经常会涉及到路径的问题,在VS环境中,我们一般将要打开的文件放在和源文件的同等目录下,从而避免了写路径的问题,只需要写文件名和格式后缀就行了。但是,在较大的项目中,一般情况下,我们经常需要将不同的文件进原创 2015-10-24 16:11:56 · 17684 阅读 · 3 评论 -
编程语言中常见的判断、选择以及循环语句的使用场合
1. 到底使用if-else if-else还是使用switch-case? 基本上在所有的编程语言中都会有这些语句,只是表达形式可能不同。初学者可能比较疑惑的是,到底该怎样区分和使用这些语句。下面将if-else if-else语句简称为if语句,将switch-case语句简称为switch语句。 if语句和switch语句都可以用来实现判断选择的逻辑。比如原创 2015-10-30 21:36:25 · 5578 阅读 · 0 评论 -
三目运算符"?:"的透彻分析
三目运算符"?:"的透彻分析 在初学C语言以及类似的语言时,大家可能对于三目运算符"?:"的使用及意义比较混乱,下面对这个运算符进行详细的解释。 之所以称之为三目运算符是因为这个运算符有三个操作数,即int num = (i == 0) ? 1 : 2; 这里?:运算符包含了三个操作数,即i == 0、1和2。这句话的含义就是当i等于0为真原创 2015-10-30 22:49:01 · 1747 阅读 · 0 评论 -
从性能角度看前缀++和后缀++(++i和i++的深入剖析)
从性能角度看前缀++和后缀++(++i和i++的深入剖析) 在初学原创 2015-10-30 23:01:15 · 2337 阅读 · 2 评论 -
透彻分析C/C++中memset函数
透彻分析C/C++中memset函数 在C语言中,经常需要对内存进行操作,里面涉及很多函数,但是memset函数的使用有一点需要大家格外注意,这也是我在做项目时遇到过的一个问题,调试了很久才找出来错误。 函数原型是:void *memset(void *s, int ch, size_t n); 函数功能是:将s所指向的某一块内存中的前n个字节的内原创 2015-11-03 21:33:10 · 43757 阅读 · 5 评论 -
解决VS2013中出现类似于error C4996: 'scanf': This function or variable may be unsafe的安全检查错误
用习惯了VS老版本的人当刚使用VS2013的时候可能总遇到类似于这样的错误: error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See onli原创 2015-11-03 21:48:30 · 103877 阅读 · 11 评论 -
C语言中变量定义的位置(C89和C99的区别)
C语言中变量定义的位置(C89和C99的区别) 在C++和JAVA中,按照语法,我们可以把变量定义在任何位置,所以很多人习惯了“哪里使用哪里定义”的这种做法,所以当用C语言进行编程的时候,很多人依然想这样去做。当然,对于变量定义的位置,C89和C99是有一定的差别的,也就是和大家使用的编译器有关。 如果大家使用较老的编译器时遇到下面的代码可能会提示错误,因为原创 2015-11-06 21:22:21 · 13880 阅读 · 0 评论 -
C语言中的布尔型变量
C语言中的布尔型变量 使用C++或JAVA等编程语言较多的人,可能随手就习惯定义一个flag,其数据类型为布尔型,然后用true和false来表示真与假的问题。这个是非常常用的。但是,在C语言中是不存在布尔型这种数据类型的,所以大家不要直接去定义bool或者boolean这种类型的变量,C语言不支持这种数据类型。不过,C语言中也是有逻辑“真”与“假”的,在C语言中非0即为真,0即原创 2015-11-06 21:44:18 · 38768 阅读 · 2 评论 -
C语言实现链表之单向链表(十一)设置结点数据与获取结点数据
C语言实现链表之单向链表(十一)设置结点数据与获取结点数据 上一篇文章给出了删除任意结点的函数,本篇文章将给出设置结点数据的函数以及获取结点数据的函数,共两个函数。/*============================================================================== * 操作 :对结点的数据元素进行设置原创 2015-11-08 21:29:04 · 1177 阅读 · 0 评论 -
C语言实现链表之单向链表(十二)判断链表是否为空和获取链表长度
C语言实现链表之单向链表(十二)判断链表是否为空和获取链表长度 上一篇文章给出了设置结点数据与获取结点数据的两个函数,本篇文章将给出判断链表是否为空和获取链表长度的函数,共两个函数。/*============================================================================== * 操作 :检查链原创 2015-11-08 21:34:47 · 6408 阅读 · 0 评论 -
C语言实现链表之双向链表(八)删除尾结点
C语言实现链表之双向链表(八)删除尾结点 上一篇文章给出了在尾结点之后插入结点的函数,本篇文章将给出删除尾结点的函数。/*============================================================================== * 操作 :删除尾结点* 操作前:ppHeadNode为链表的头指针的二原创 2015-11-24 17:24:33 · 2805 阅读 · 0 评论 -
C语言实现链表之双向链表(九)在任意位置插入结点
C语言实现链表之双向链表(九)在任意位置插入结点 上一篇文章给出了删除尾结点的函数,本篇文章将给出在任意位置插入结点的函数。/*============================================================================== * 操作 :在任意位置插入结点* 操作前:pHeadNode为链表原创 2015-11-24 17:25:13 · 1062 阅读 · 0 评论 -
C语言实现链表之双向链表(十)删除任意结点
C语言实现链表之双向链表(十)删除任意结点 上一篇文章给出了插入任意结点的函数,本篇文章将给出删除任意结点的函数。/*============================================================================== * 操作 :删除任意结点* 操作前:ppHeadNode为链表的头指针的二级原创 2015-11-24 17:27:05 · 1035 阅读 · 0 评论 -
C语言实现链表之双向链表(十一)设置结点数据与获取结点数据
C语言实现链表之双向链表(十一)设置结点数据与获取结点数据 上一篇文章给出了删除任意结点的函数,本篇文章将给出设置结点数据的函数以及获取结点数据的函数,共两个函数。/*============================================================================== * 操作 :对结点的数据元素进行原创 2015-11-24 17:28:35 · 647 阅读 · 0 评论 -
C语言实现链表之双向链表(十二)判断链表是否为空和获取链表长度
C语言实现链表之双向链表(十二)判断链表是否为空和获取链表长度 上一篇文章给出了设置结点数据与获取结点数据的两个函数,本篇文章将给出判断链表是否为空和获取链表长度的函数,共两个函数。/*============================================================================== * 操作 :检原创 2015-11-24 17:31:13 · 4036 阅读 · 0 评论 -
C语言实现链表之双向链表(十三)获取数据对应的结点
C语言实现链表之双向链表(十三)获取数据对应的结点 上一篇文章给出了判断链表是否为空以及获取链表长度的两个函数,本篇文章将给出一个比较特殊的函数,说其特殊并不是因为功能,而是因为函数的参数,下面请看程序。/*==============================================================================原创 2015-11-24 17:31:49 · 799 阅读 · 0 评论 -
C语言实现链表之双向链表(十四)链表打印
C语言实现链表之双向链表(十四)链表打印 上一篇文章给出了获取数据对应的结点的函数,本篇文章将给出链表打印。/*============================================================================== * 操作 :打印链表中的所有结点的数据元素* 操作前:pHeadNode为链表的头原创 2015-11-24 17:33:43 · 1305 阅读 · 0 评论 -
C语言实现链表之双向链表(十五)测试用例
C语言实现链表之双向链表(十五)测试用例 上一篇文章给出了最后的两个函数,即链表打印和排序,这篇文章将给出所有函数的测试用例,即ListTestTop.c文件。/*******************************************************************************************原创 2015-11-24 17:36:16 · 1069 阅读 · 0 评论 -
C语言实现链表之双向链表(七)尾结点后插入结点
C语言实现链表之双向链表(七)尾结点后插入结点 上一篇文章给出了删除头结点的函数,本篇文章将给出在尾结点后插入结点的函数。注意双向链表中前向指针的处理,与单向链表对比学习一下。/*============================================================================== * 操作 :在尾结点原创 2015-11-24 17:22:25 · 1867 阅读 · 0 评论 -
C语言实现链表之双向链表(六)删除头结点
C语言实现链表之双向链表(六)删除头结点 上一篇文章给出了在头结点之前插入结点的函数,本篇文章将给出删除头结点的函数。依旧需要注意的是对前向指针的处理。/*============================================================================== * 操作 :删除头结点* 操作前:pp原创 2015-11-24 17:19:48 · 2336 阅读 · 0 评论 -
C语言实现链表之双向链表(五)头结点前插入结点
C语言实现链表之双向链表(五)头结点前插入结点 上一篇文章给出了清空链表的函数,本篇文章将给出插入结点---在头结点之前插入的函数。注意对前向指针的处理。/*============================================================================== * 操作 :在头结点之前加入一个新结点*原创 2015-11-24 17:16:49 · 1569 阅读 · 1 评论 -
C语言实现链表之单向链表(十三)获取数据对应的结点
C语言实现链表之单向链表(十三)获取数据对应的结点 上一篇文章给出了判断链表是否为空以及获取链表长度的两个函数,本篇文章将给出一个比较特殊的函数,说其特殊并不是因为功能,而是因为函数的参数,下面请看程序。/*============================================================================== *原创 2015-11-08 21:36:00 · 1216 阅读 · 0 评论 -
C语言实现链表之单向链表(十四)链表打印和排序
C语言实现链表之单向链表(十四)链表打印和排序 上一篇文章给出了获取数据对应的结点的函数,本篇文章将给出链表打印和排序的函数,关键在于排序。/*============================================================================== * 操作 :打印链表中的所有结点的数据元素* 操作前:原创 2015-11-08 21:42:18 · 2382 阅读 · 0 评论 -
C语言实现链表之单向链表(十五)测试用例
C语言实现链表之单向链表(十五)测试用例 上一篇文章给出了最后的两个函数,即链表打印和排序,这篇文章将给出所有函数的测试用例,即ListTestTop.c文件。/*******************************************************************************************原创 2015-11-08 21:54:11 · 1916 阅读 · 0 评论 -
C语言实现raw格式图像的读入和存取
C语言实现raw格式图像的读入和存取 raw格式是在生活中比较少见的图像格式,但是它作为一种相机的原始图像数据,在图像处理领域用处很多。raw格式的图像相当于就是一个二进制流,所有图像数据按顺序单字节存放,中间没有任何间隔,自然也不存在所谓的每一行一个回车,它的每个图像数据都是紧挨着的,读取的时候必须自己按照图像的分辨率进行存取,放在二维数组中的情况居多,当存取到二维数组中时才有原创 2015-11-10 22:09:03 · 23219 阅读 · 6 评论 -
C语言实现链表之双向链表(一)头文件
C语言实现链表之双向链表(一)头文件 前面已经出过一个单向链表的系列,这里给出双向链表的实现,这一系列的实现与单向链表有很多类似之处,大家可以参考单向链表的系列。 单向链表的系列(一)的链接是:点击打开链接 双向链表主要就是加上了一个前向指针其他的并没有太多变化,直接进入正题。 本次设计的链表操作库主要包含三个文件,分别原创 2015-11-24 16:57:17 · 2116 阅读 · 0 评论 -
C语言实现链表之双向链表(二)结点内存申请及数据初始化
C语言实现链表之双向链表(二)结点内存申请及数据初始化 在上一篇文章中已经给出了整体的设计框架,现在讲逐一给出每一个函数的实现,为了一一讲解,清晰一点,将分开介绍。 本篇文章将给出MyList_Bidirection.c---实现文件的第一个函数,即对链表中的一个结点申请内存并对其内部的数据进行初始化的函数。程序如下,由于是第一个函数,所以会给出整个文件的前面部原创 2015-11-24 17:04:57 · 1648 阅读 · 0 评论 -
C语言实现链表之双向链表(三)创建链表
C语言实现链表之双向链表(三)创建链表 上一篇文章已经给出了第一个函数,即为结点分配内存并初始化,这篇文章将给出第二个函数,即创建链表。这个函数比较常用,但是可能需求不一样,注意,双向链表在建立的时候,要对前向指针进行处理,也并不复杂,只要将前向指针指向前面的结点即可,下面看程序。/*========================================原创 2015-11-24 17:08:50 · 1153 阅读 · 0 评论