c语言单链表:链表的C语言实现之单链表的实现

一、单链表的建立  有了动态内存分配的基础,要实现链表就不难了。  所谓链表,就是用一组任意的存储单元存储线性表元素的一种数据结构。链表又分为单链表、双向链表和循环链表等。我们先讲讲单链表。所谓单链表,是指数据接点是单向排列的。一个单链表结点,其结构类型分为两部分:  1、数据域:用来存储本身数据  2、链域或称为指针域:用来存储下一个结点地址或者说指向其直接后继的指针。  例:typedef s... [阅读全文]

动态内存分配:链表的C语言实现之动态内存分配

一、为什么用动态内存分配  但我们未学习链表的时候,如果要存储数量比较多的同类型或同结构的数据的时候,总是使用一个数组。比如说我们要存储一个班级学生的某科分数,总是定义一个float型(存在0.5分)数组:float score[30];  但是,在使用数组的时候,总有一个问题困扰着我们:数组应该有多大?  在很多的情况下,你并不能确定要使用多大的数组,比如上例,你可能并不知道该班级的学生的人数,... [阅读全文]

嵌入式系统编程:C语言嵌入式系统编程修炼之背景篇

不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,c语言--一种\"高级的低级\"语言,则成为嵌入式系统开发的最佳选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到c语言的精妙,沉醉于c语言给嵌入式开发带来的便利。  图... [阅读全文]

删除结点:链表的C语言实现之删除结点

假如我们已经知道了要删除的结点p的位置,那么要删除p结点时只要令p结点的前驱结点的链域由存储p结点的地址该为存储p的后继结点的地址,并回收p结点即可。  以下便是应用删除算法的实例:#include <stdio.h>#include <malloc.h>#include <string.h>#define n 10 typedef struct node{ char name[20]; stru... [阅读全文]

指针数组:再谈C语言中数组和指针之间的互操作

我曾说过在c语言中只有维(这是我对看法)而且元素可以是任何类型数据(或对象)自然也可以是另外个(也是种数据类型)所以如果你坚持要说有多维那也不是不可能事情我们只要把个赋值给另个元素就可以了当然了我们必须保证在编译期大小是个固定常数   其实操作很简单只要我们确定个大小和指向该下标为0元素指针其他任何个下标运算都等同于个对应指针运算所以我们说“和指针是可以相互操作... [阅读全文]

测试qq登了几个小时:绝对能够测试你的C语言功力的几个问题

在实际的vc++教学中,发现很少有真正精通了c语言编程的学员,一般都有或多或少概念不是完全清楚的问题,特别是一些需要丰富的实战经验才能体会和明白的问题,如字符串,指针,类型转换,定义指向函数的指针类型,这也是导致学习vc++困难的一个原因。下面有几个简单测试将能发现你对c语言的掌握情况。int x=35;char str[10];//问:strlen(str)和sizeof(str)的值分别是多少... [阅读全文]

连接两个字符串:连接两个字符串的几种方法

原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?boardid=5&id=85644题目:编一程序,将两个字符串连接起来,不要用strcat函数。第1种方法:main(){char str1[10]=\"world!\";char str2[20]=\"hello \";strcpy(str2+strlen(str2),str1);printf(\"%s\",str2... [阅读全文]

汉字全拼输入法:输入系统 -- 全拼汉字输入

原文及讨论:http://bbs.bc-cn.net/dispbbs.asp?boardid=225&id=93828作者:孙靖(jig) 时间:2006 - 10 - 1若要转贴或使用本文章介绍的技术,请在你发布的文章或作品中注明出处。这个是很久以前的一个作品,可能很多朋友看了后会觉得很垃圾,的确这个做的是很简单,只是当时一时兴起就做了这个。其实用键盘做输入法很简单,只要自己确立好字库,然后编程... [阅读全文]

gb2312utf8:C语言实现UTF-8与GB2312互换

  如果您对UTF-8、Unicode、GB2312等还是很陌生话请查看http://www.linuxforum.net/books/UTF-8-Unicode.html我这里就不浪费口舌了下面介绍下WinAPI两个:WideCharToMultiByte、MultiByteToWideChar 原型: WideCharToMultiByte( UINTCod... [阅读全文]

select模型:C语言开发基于select I/O模型的远程目录浏览与多线程文件下载

摘要: 服务器端基于select I/O模型为防止界面阻塞, 有个子线程用于不断接收并select其中处理客户端只有个线程, 不过其利用率很高, 可用于远程目录交换, 请求文件大小, 创建若干线程来下载文件文件传输有上传和下载,还有对等传输, 这个项目中, 传输文件具体指下载正文: 数据及数据结构1 传送包, 客户端主线程给子线程传递结构体typedef str... [阅读全文]

24点算法:关于24点游戏的思路和算法

闲来无聊便和同学玩起童年时经常玩 2十 4点牌游戏来此游戏说来简单就是利用加减乘除以及括号将给出 4张牌组成个值为24表达式但是其中却不乏些有趣题目这不我们刚玩了会儿便遇到了个难题——3、6、6、10(其实后来想想这也不算是个太难题只是当时我们脑筋都没有转弯而已呵呵) 问题既然出现了我们当然要解决冥思苦想的际我脑中掠过丝念头——何不编个来解决这个问题呢?文曲星... [阅读全文]

c语言画图程序:C语言实现画图程序

  笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题。由于电力系统一次接线图比较复杂,图上有一些特殊的符号,象变压器符号、开关符号等等,用一般的编程方法来绘制比较困难,因此,笔者用C语言开发了一个手工绘制电力系统一次接线图的键盘绘图程序,使用该程序绘制的一次接线图符合用户需求,效果良好。2.使用方法 程序中定义了几个特殊键:\"V”:画笔提起\"W”:开始画图\"R... [阅读全文]

java字符串替换:用C语言实现字符串替换功能

下面是用C语言实现串替换功能代码:char *replace(char *source, char *sub, char *rep) { char *result; /*pc1 是复制到结果result扫描指针*/ /*pc2 是扫描 source 辅助指针*/ /*pc3 寻找子串时,为检查变化中source是否和子串相等,是指向sub扫描指针 */ /... [阅读全文]

vcasm:vc生成ASM文件的方法

Project-Setting-C/C++-Category-Listing Files- lISTING file type:选No Listing以外的即可... [阅读全文]

系统调用:全面了解系统调用与库函数调用方法

今天对系统调用和库函数调用进行了一次总结!在这里把心得写出来,如果有什么错误希望大家能指出 我们假设UNIX系统 库函数有C编译器提供 , 而你有用汇编编写C库函数的能力! 首先要知道宏观上知道系统调用和库函数的区别:系统调用由操作系统提供,我门假设用汇编编写的 而库函数是编译器提供 而我们知道系统调用是会通过一种陷阱的机制陷入内核而执行相应的处理程序 为什么要陷入内核哪,因为系统分为内核态和用户... [阅读全文]

debugapi:用Debug函数实现API函数的监视

大家知道VC可以用来调试除了调试Debug当然也可以调试Release程 序(调试Release时为汇编代码)如果知道入口地址只需在入口上设置断点当了设置断点时VC就会暂停目标 运行你就可以得到目标内存所有你希望得到东西了般来说只要你有足够耐心和毅力以及些汇编知识对于监视API输入输出参数还 是可以完成 不过由于VC调试器会在每次断点时暂停目标运行对目标过多暂停... [阅读全文]

debugapi:用Debug函数实现API函数的监视

大家知道VC可以用来调试除了调试Debug当然也可以调试Release程 序(调试Release时为汇编代码)如果知道入口地址只需在入口上设置断点当了设置断点时VC就会暂停目标 运行你就可以得到目标内存所有你希望得到东西了般来说只要你有足够耐心和毅力以及些汇编知识对于监视API输入输出参数还 是可以完成 不过由于VC调试器会在每次断点时暂停目标运行对目标过多暂停... [阅读全文]

vc动态链接库编程:使用VC++动态链接库编程制作DLL木马

DLL在编制中可作出巨大贡献它提供了具共性代码复用能力但是正如门高深武学若被掌握在正义的侠手上便可助其仗义江湖;但若被掌握在邪恶的徒手上则必然在江湖上掀起腥风血雨DLL正是种这样武学DLL旦染上了魔性就不再是正常DLL而是DLL木马种恶贯满盈病毒令特洛伊夜的间国破家亡   DLL木马原理   DLL木马实现原理是编程者在DLL中包含木马代码随后在目标主机中选择... [阅读全文]

interl:Interl多核编程大赛的复赛的第一题

下面这段代码来自Interl多核编程大赛的复赛的第一题,讲的是获取文件大小,一起来解答一下看看吧。#include #include #include #include #include int main(int argc, char *argv[]){float *farray, product;struct stat buf;int num,index;/*******************... [阅读全文]

vcado连接数据库:ADO实现Access数据库表的遍历和字段的遍历(VC版)

网络上鲜有VC版的相关代码,今日学习了VC利用ADO操纵数据库部分。查了一下MSDN写了以下代:遍历用户表的代码: CoInitialize(NULL);_ConnectionPtr pconn(__uuidof(Connection));_RecordsetPtr prs(__uuidof(Recordset)); pconn-ConnectionString=\"Provider=Micro... [阅读全文]

控制面板程序编程方法

控制面板是用户用于配置Windows环境些特殊动态连接库(DLL)Windows已经为我们提供了些标准控制面板如字体、键盘、鼠标设置等;如图1所示我们也可以根据实际需要创建自己控制面板以便让用户来查看或者修改特定软硬件参数设置 控制面板功能和操作方式 控制面板主要功能是显示个对话框让用户完成特定任务但是和其它应用区别是控制面板并不是个独立应用它不提供标准菜单或... [阅读全文]

一个窗口多个网页:一个工程里多个文件使用方法

声明:环境DEV,语言C(C可以类推) 遇到的问题: 1.几个文件会用到同样的数据类型(用结构体自定义的)。但有些数据类型是自己文件自己里面用到外面不需要。 2.一些文件肯定用到其他文件里的函数 解决办法: 采用头文件和extern关键字解决 详细: 首先建立一个文件夹,所有的相关文件都放在这里面,在DEV建立工程,把工程保存在这个文件夹,然后就在DEV工程里添加头文件,源代码文件了 对于公用的数... [阅读全文]

串口原理:串口握手协议的XON\\XOFF原理

串口握手协议的XON\\XOFF原理有人可能搞不清楚,看看下面这个例子你应该能有所感悟。假设电脑A和电脑B通过RS232串口通信A 和 B协商使用软件握手协议(dcb.fOutX = TRUE), 定义XonChar \\ XoffChar 比如XonChar = 1, XoffChar = 2. 现在, A向B发送字符2, B向A发送字符串\"helloworld\". A能收到字符串\"he... [阅读全文]

获取进程路径:在NT下获取进程路径的方法

、介绍说明  最近整理文档发现以前写如何在NT下获取进程路径文中还有个问题没有解决:原文中无法获取系统进程路径如:csrss.exe记得VCKBASE上有位网友说过个思路方法:“给枚举进程增加SE_DEBUG_NAME权限即可”于是在网上找了些资料解决了原文中问题这里要特别感谢那位名叫rovershen网友!我自定义了个用来赋予进程指定权限(本例为SE_DEBU... [阅读全文]

mfc绘图:使用MFC设计绘图程序基础

首先我们说下通过鼠标移动来绘制直线   这里要捕获到鼠标两个消息:WM_LBUTTONDOWN,WM_LBUTTONUP响应WM_LBUTTONDOWN消息记录直线起始点响应WM_LBUTTONUP消息记录直线终点并绘制直线   好了我们看看如何响应 voidCDrawView::OnLButtonDown(UINTnFlags,CPopo) {  //Mes... [阅读全文]

c语言库函数:c语言库函数编译的优化

c语言的有些库函数会在编译的时候被优化 如gcc中 log2(1)会被优化成常数 但是log2(20)就会在运行时计算值 fabs会被优化成机器(汇编)指令fabs 所以即使你没有包含含有fabs声明的头文件也可以成功编译运行 带有fabs函数的程序 ..................................................................... (int... [阅读全文]

cstring:C++的CString对象实例学习

CString是一种很特殊的C++对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于CString地址之下的一个隐藏区域)以及一个缓冲区长度。有效字符数的大小可以是从0到该缓冲最大长度值减1之间的任何数(因为字符串结尾有一个NULL字符)。字符记数和缓冲区长度被巧妙隐藏。 1.CString与float的转变 1)CString转变为flo... [阅读全文]

md5加密解密vc:VC对密码加密和解密函数

//Crypt.cpp:implementationoftheCCryptclass. // ////////////////////////////////////////////////////////////////////// #include\"stdafx.h\" #include\"Crypt.h\" #ifdef_DEBUG #undefTHIS_FILE staticcharTH... [阅读全文]

vc6.0使用方法:在VC6.0使用GDI+的方法及初始化工作

GDI+是WindowsXP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。顾名思义,GDI+是以前版本GDI的继承者,出于兼容性考虑,WindowsXP仍然支持以前版本的GDI,但是在开发新应用程序的时候,开发人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的Windows版本中GDI进行了优化,并添加了许多新的功能。 遗憾的是... [阅读全文]

水波模拟的实现方法

在个波长范围内任意点位移disp=sin(dist)*force+disp_center; 这里设水波为正弦波振幅为force,disp_center为振中位移 推广到任何点disp=sin(dist%wave_length)*force+disp_center; 这里wave_length为波长可以看出在离散数据中任何点位移是有限集合我们先构造出这个集合在运算... [阅读全文]
<< < 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 > >> 共853条 分29页