C语言
文章平均质量分 66
dcw0402
这个作者很懒,什么都没留下…
展开
-
深入理解C语言指针的奥秘
深入理解C语言指针的奥秘原 作 者:不祥原 出 处:vcer发 布 者:李广胜发布类型:转载发布日期:2007-12-18今日/总浏览:10/1177 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说原创 2013-02-07 21:44:01 · 318 阅读 · 0 评论 -
四种进程或线程同步互斥的控制方法
很想整理一下自己对进程线程同步互斥的理解。正巧周六一个刚刚回到学校的同学请客吃饭。在吃饭的过程中,有两个同学,为了一个问题争论的面红耳赤。一个认为.Net下的进程线程控制模型更加合理。一个认为Java下的线程池策略比.Net的好。大家的话题一下转到了进程线程同步互斥的控制问题上。回到家,想了想就写了这个东东。 现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的。由这4种原创 2013-02-07 21:45:00 · 350 阅读 · 0 评论 -
kern/console.c:键盘码映射
/*早期的键盘实际上是一种5pin的键盘,称作AT键盘,是1984年IBM PC的标准键盘。在1987年IBM进行了改进,从而变成了现在的PS/2键盘。当按下一个键或释放一个键,键盘都会发送键盘扫描码到主机。比如按下A,键盘就会发送0x1C到主机。如果持续按A,当经过一个给定时间后,就会发送0x1C到主机。当键盘被释放,键盘会发送0xF0加键码到主机,告诉主机键盘哪个键被释放。当再次按下A,键盘就原创 2013-02-07 21:45:09 · 727 阅读 · 0 评论 -
msdn线程说明收藏
_beginthread, _beginthreadex Create a thread. unsigned long _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist ); unsigned long _beginthreadex( void *s原创 2013-02-07 21:45:15 · 436 阅读 · 0 评论 -
临界区基本
InitializeCriticalSection Windows API函数声明 VOID InitializeCriticalSection( LPCRITICAL_SECTION lpCriticalSection // critical section ); 函数功能 初始化一个临界资源对象 参数说明 lpCriticalSection 临界资源对象指针原创 2013-02-07 21:45:19 · 415 阅读 · 0 评论 -
(size_t) & ((struct element *) 0) -> member
(size_t) & ((struct element *) 0) -> member求出member在element中的相对位置。计算结构体成员偏移的。相当于把0地址转换为指向element结构的指针,然后取其成员地址,自然就是该结构体成员的偏移量。该语句看似访问0地址,实际只是在编译阶段执行的,并不会引起异常csdn原创 2013-02-07 21:45:23 · 513 阅读 · 0 评论 -
C语言运算符优先级和结合性表
C语言运算符优先级和结合性表 优先级运算符含义对象个数结合方向 1()圆括号 自左至右[]下标运算符->指向结构体成员运算符·结构体成员运算符原创 2013-02-07 21:45:27 · 554 阅读 · 0 评论 -
C_C++指针指针应用详解
前言:复杂类型说明要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧:int p; //这是一个普通的整型变量in原创 2013-02-07 21:43:59 · 337 阅读 · 0 评论 -
C经典例题100-1/2
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i for(j=1;j for (k=1;k { if (i!=k&&i!=j原创 2013-02-07 21:44:20 · 437 阅读 · 0 评论 -
C程序小游戏_贪吃蛇代码
做参考吧#define N 200#include #include #include #define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;/*得分*/int gamespeed=50000;/*游戏速度自己调整*/s原创 2013-02-07 21:44:45 · 972 阅读 · 0 评论 -
DirectSound
DirectSound 目录: 关于DirectSound DirectSound设备 枚举可以使用的声音设备 创造DirectSound对象 设置合作级 检索硬件信息 扬声器的设置 压缩 DirectSound缓冲 静态缓冲和流缓冲 创建辅助缓冲 缓冲控制选项 主缓冲的存取 播放声音 重放(PLAYBAC原创 2013-02-07 21:45:02 · 645 阅读 · 0 评论 -
C语言头文件的作用
最近在工作当中遇到了一点小问题,关于C语言头文件的应用问题,主要还是关于全局变量的定义和声明问题.学习C语言已经有好几年了,工作使用也近半年了,但是对于这部分的东西的确还没有深入的思考过.概念上还是比较模糊的,只是之前的使用大多比较简单,并没有牵涉到太复杂的工程,所以定义和声明还是比较简单而明了了的.但是最近的大工程让我在这方面吃到了一点点苦头,虽然看了别人的代码能够很快的改正,但是这些改正背后的原创 2013-02-07 21:45:04 · 346 阅读 · 0 评论 -
兔子计划生育问题
//生后隔年成熟,成熟后次年生崽#include #include #include int main(){ int *ptuzi = NULL,i = 0, nian = 0; time_t tstart = 0,tfinish = 0,tuse = 0; scanf("%d",&nian); fflush(stdin)原创 2013-02-07 21:45:11 · 753 阅读 · 0 评论 -
控制台输出光标定位
#include #include //vs下可用void Gotoxy(int i,int j) //定位到第y行的第x列{ int xx=0x0b; HANDLE hOutput; COORD loc; loc.X = j; loc.Y = i; hOutput = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOut原创 2013-02-07 21:44:52 · 1195 阅读 · 0 评论 -
linux下C语言多线程编程实例 (转)
学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。下面是我们的代码:/*thread_example.c : c multiple thread programming in linux *author : falcon原创 2013-02-07 21:44:50 · 538 阅读 · 0 评论 -
再论指针_绝好东东
摘自: CSDN文库 整理: 王向阳 指针是C语言规范里面一项核心内容,指针具有与生俱来的优势,利用指针可以写出许多短小精悍、效率极高的代码,它是C语言一把无可替代的利器,凭着这把利器,C语言与其它高级语言相比至少在效率方面高人一筹。但是,由于指针的原理与使用方式跟人们通常的思维习惯有较大的差别,造成了指针比C语言其它概念难理解得多,这使得对指针认识不足成为了一种在C程序员中普遍存在的现原创 2013-02-07 21:44:03 · 555 阅读 · 0 评论 -
谁养鱼----让人郁闷的穷举
先贴这里,待处理.不妨参考这里建模处理问题的方法.穷举的速度比用笔还慢,郁闷这题昰爱因斯坦在20世纪初出的谜语,他说世界上有百分之98的人答不出来.你能答出来吗?请写出分析过程.1.在一条街上,有5座房子,喷了5种颜色.2.每个房子里住着不同国籍的人.3.每个人喝着不同的饮料,抽不同品牌的香烟,养不同的宠物提示:1.英国人住红色房子.2.瑞典人养狗.3.丹麦人喝茶.4.绿色房子在白色房子左边.原创 2013-02-07 21:44:24 · 425 阅读 · 0 评论 -
查找文件,参考吧
#include windows.h>#include stdio.h>#include string.h>FILE *fp;void findFile(char filePath[])//这个是你要的函数{ char szFind[MAX_PATH];//这是要找的 WIN32_FIND_DATA FindFileData; HANDLE hFind; char szFile[MAX_原创 2013-02-07 21:45:07 · 307 阅读 · 0 评论 -
光标控
GetStdHandle 函数声明如下 : HANDLEGetStdHandle( DWORDnStdHandle ); GetStdHandle()返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。 其参数nStdHandle的值为下面几种类型的一种: 值 含义原创 2013-02-07 21:45:13 · 1069 阅读 · 0 评论 -
数据结构之堆栈模拟应用(算法3.1)
#include #include #define STACK_INIT_SIZE 100#define STACK_INCRASE_SIZE 20 enum State{ERR,OK,FAILED};typedef int SElemType;typedef struct tag_Stack //原创 2013-02-07 21:45:36 · 486 阅读 · 0 评论 -
c语言经典教程:发声技术
问题:乐谱的 1、2、3、4、5、6、7,加上高低音可以谱出动听的曲子,请编写程序,使计算机能够播放歌曲。[分析] 播放歌曲意味着让计算机发声,声音从 PC 机内的扬声器发出,所以这个问题将与硬件扬声器电路有关。[解答] 解决这一编程问题,让我们首先简单了解一下计算机发声的原理。在PC 机的系统板上装有定时与计数器 8253 芯片,还有 8255 可编程并行接口芯原创 2013-02-07 21:43:57 · 54891 阅读 · 0 评论 -
C时间处理相关之--C语言time.h从头学
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C原创 2013-02-07 21:44:18 · 606 阅读 · 0 评论 -
C语言标准库函数qsort排序的介绍与使用
qsort函数包含在的头文件里。qsort函数声明如下:void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));参数说明如下:base: 要排序的数组nmemb: 数组中的元素数目size: 每个数组元素占用内存空间,可使用sizeof获得compar: 比较两个数组元素原创 2013-02-07 21:44:29 · 341 阅读 · 0 评论 -
数组名与指针那点破事
#include int main(){ int a[4][5]={0}; a[3][4]=45; //此处貌似个编译器bug,printf出来的是,int*型 //而监视出的结果是,类型是int[4][5] printf("%d\n",sizeof(a+1)); //规律(知识点):原创 2013-02-07 21:44:43 · 449 阅读 · 0 评论 -
堆栈数据结构应用之括号匹配检查(算法3.2.2)
#include #include #include #define STACK_INIT_SIZE 100#define STACK_INCRASE_SIZE 20 enum State{ERR,OK,FAILED};typedef char SElemType;typedef struct tag_Stack原创 2013-02-07 21:45:38 · 379 阅读 · 0 评论 -
指针经典
一.指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容: 1.指针的类型,四点 2.指针所指向的类型,3.指针的值或者叫指针所指向的内存区,4.指针本身所占据的内存区。 让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr原创 2013-02-07 21:44:05 · 394 阅读 · 0 评论 -
C经典例题100-2/2
【程序51】题目:学习使用按位与 & 。 1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=12.程序源代码:#include "stdio.h"main(){int a,b;a=077;b=a&3;printf("\40: The a & b(decimal) is %d \n",b);b&=7;printf("\40: The a & b(decimal) is %d \n"原创 2013-02-07 21:44:22 · 462 阅读 · 0 评论 -
C语言转义字符和格式控制符参考
\a:蜂鸣,响铃 \b:回退:向后退一格 \f:换页 \n:换行,光标到下行行首 \r:回车,光标到本行行首 \t:水平制表 \v:垂直制表 \\:反斜杠 \':单引号 \":双引号 \?:问号 \ddd:三位八进制 \xhh:二位十六进制 \0:空字符(NULL),什么都不做 注: 1,\v垂直制表和\f换页符对屏幕没有任何影响,原创 2013-02-07 21:44:47 · 310 阅读 · 0 评论 -
光标详细资料
控制台窗口界面编程控制〇、摘要 一、概述 二、控制台文本窗口的一般控制步骤 三、控制台窗口操作 四、文本属性操作 五、文本输出 六、文本操作示例 七、滚动和移动 八、光标操作 九、读取键盘信息 十、读取鼠标信息 十一、结语 补充篇--经典程序(Internet资源)摘要:文本界面的控制台应用程序开发是深入学习C++、掌握交互系统的实现方法的最简单的一种手段。然而,Visual C++的C++专用库原创 2013-02-07 21:45:17 · 866 阅读 · 0 评论