202205-15 C语言中栈的两种实现方法详解 目录一、顺序栈二、链式栈总结一、顺序栈#include<stdio.h>#include<stdlib.h>#definemaxsize64//定义栈typedefstruct{intdata[maxsize];inttop;}sqstack,*sqslink;//设置栈空voidClearstack(sqslinks){s->top=-1;}//判断栈空intEmptystack(sqslinks){if(s->top<0)return1;elsereturn0;}//进栈intPush(sqslinks,intx){if(s->top>=maxsize-1)return0;else{s->top++;s->data[s->top]=x;return... 继续阅读 >
202205-15 C语言操作符基础知识图文详解 目录1.算术操作符+-*/%2.移位操作符>>(右移操作符)<<(左移操作符)左移操作符:<<右移操作符:>>3.位操作符3.1&按位与3.2|按位或3.3^按位异或3.4~按位取反4.赋值操作符=5.逻辑操作符5.1!非5.2&&与5.3||或6.条件运算符?7.单目操作符7.1!7.2+正值7.4&取地址7.5sizeof7.6(强制类型转换)7.7++--自增自减7.8*解引用8.逗号表达式9.关系操作符==>=<=!=><=9.1==9.2!=9.3>=<=总结前... 继续阅读 >
202205-15 C语言 OutputDebugString与格式化输出函数OutputDebugPrintf案例详解 OutputDebugString属于windows API的,所以只要是包含了window.h这个头文件后就可以使用了。可以把调试信息输出到编译器的输出窗口,还可以用DbgView(本机或TCP远程)这样的工具查看,这样就可以脱离编译器了。 OutputDebugString默认只能输入一个参数,不能像printf那样格式化输出,下面改造成类似printf函数的输出方式。#include<windows.h>#include<stdio.h>//#include<stdlib.h>#include<stdarg.h>#def... 继续阅读 >
202205-15 C语言 socketpair用法案例讲解 socketpair()函数的声明:#include<sys/types.h>#include<sys/socket.h>intsocketpair(intd,inttype,intprotocol,intsv[2]);socketpair()函数用于创建一对无名的、相互连接的套接子。 如果函数成功,则返回0,创建好的套接字分别是sv[0]和sv[1];否则返回-1,错误码保存于errno中。基本用法: 这对套接字可以用于全双工通信,每一个套接字既可以读也可以写。例如,可以往sv[0]中写,从sv[1]中读;或者从s... 继续阅读 >
202205-07 C语言版简单扫雷游戏 本文实例为大家分享了C语言版的简单扫雷游戏,供大家参考,具体内容如下思想我们在设计的时候,首先将其分为三个部分,分别为头文件game.h游戏界面及主要实现的功能函数部分test.c,还有就是最重要的游戏实现部分game.c。一、头文件构建;我们通过game.h将所有用到的头文件引用进去,目的是更加直观的让读者看懂我们的结构,另外我们思路也会通畅一些。#include<stdio.h>#include<stdlib.h>#include<time.h>#defineROW9#defi... 继续阅读 >
202205-07 基于C语言实现三子棋游戏 说到三子棋,我想大家一定不陌生吧,它也是我童年中的一部分,今天我们用C语言来实现一下简易版的三子棋。首先,介绍一下游戏规则:1.在一个九宫格上进行下棋;2.玩家两名,双方先后落子;3.若在一条直线上有三颗同一玩家的棋子,则该玩家赢,若棋盘下满也没有出现三颗棋子在一条直线上,则为平局。设计思路如下:1.用do…while循环可以保证玩完一把还能接着玩,玩家可以自行选择继续玩还是退出。2.用一个3x3的二维数组来存放玩家... 继续阅读 >
202205-07 利用C语言实现扫雷游戏 通过一段时间的C语言学习,想必小伙伴们也想跃跃欲试的编写一些小程序,这个扫雷简易游戏,非常适合C语言初学者去实践。实现扫雷,首先要有两个棋盘,一个棋盘放置着雷的信息,另个用于展示到屏幕上;然后就是玩家输入坐标排雷,如果输入的坐标有雷,就游戏结束,要是没有雷就在展示棋盘对应的位置,显示出周边雷的个数;最后排查完所有坐标并且不被雷炸死,就是胜利。以上是扫雷的基本逻辑,现在开始,一步一步的实现。1.初始化棋... 继续阅读 >
202204-30 如何将C++源程序改写为C语言 目录如何将C++的源程序改写为C语言一.类的成员函数和数据成员二.类的构造函数三.类的析构函数四.类的拷贝构造函数六.重载如何将C++的源程序改写为C语言由于C++解释器比C语言解释器占用的存储空间要大500k左右。为了节省有限的存储空间,降低成本,同时也为了提高效率,将用C++语言写的源程序用C语言改写是很有必要的。C++与C区别最大的就是C++中的类的概念和特性,将C++改为C的问题,就转换成如何将类化去的问题。... 继续阅读 >
202204-30 C语言MultiByteToWideChar和WideCharToMultiByte案例详解 目录注意:一、函数简单介绍(1)MultiByteToWideChar()(2)WideCharToMultiByte()二、使用方法(1)将多字节字符串转为宽字符串:(2)从宽字节转为窄字节字符串三、MultiByteToWideChar()函数乱码的问题注意:这两个函数是由Windows提供的转换函数,不具有通用性C语言提供的转换函数为mbstowcs()/wcstombs()一、函数简单介绍涉及到的头文件:函数所在头文件:windows.h#include<windows.h>wchar_t类型所需头文件:wchar.h#... 继续阅读 >
202204-30 C语言container of()函数案例详解 在linux内核编程中,会经常见到一个宏函数container_of(ptr,type,member),但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?函数还可以这样定义???怎么还有0呢??? 哎,算了,还是放弃吧。。。)。这就是内核大佬们厉害的地方,随便两行代码就让我们怀疑人生,凡是都需要一个过程,慢慢来吧。 其实,原理很简单: 已知结构体type... 继续阅读 >
202204-30 C语言版三子棋游戏实现代码 本文实例为大家分享了C语言版三子棋游戏的具体代码,供大家参考,具体内容如下实现一个三子棋小游戏下面是实现步骤:总共有需要三个文件第一,test.c我们要在这个文件里面实现游戏的主体流程第二,game.c在这个文件里我们可以实现各个游戏函数的分装第三,game.h在这个文件里我们实现的是各个函数的声明test.c1、首先要有一个菜单让玩家可以做出选择2、接着对玩家做出的不同选择进行实现选1就是开始游戏,所以我们进入到game函数里... 继续阅读 >
202204-30 C语言 动态分配数组案例详解 目录一维动态数组的创建:二维数组的创建:很多人在编写C语言代码的时候很少使用动态数组,不管什么情况下通通使用静态数组的方法来解决,在当初学习C语言的时候我就是一个典型的例子,但是现在发现这是一个相当不好的习惯,甚至可能导致编写的程序出现一些致命的错误。尤其对于搞嵌入式的人来所,嵌入式系统的内存是宝贵的,内存是否高效率的使用往往意味着嵌入式设备是否高质量和高性能,所以高效的使用内存对我们来说是很重要的... 继续阅读 >
202204-20 纯c语言优雅地实现矩阵运算库的方法 目录1.一个优雅好用的c语言库必须满足哪些条件2.实现一个矩阵运算库的几点思考(1)采用预定义的数据类型,避免直接使用编译器定义的数据类型(2)基于对象编程,定义矩阵对象(3)除了特别编写的内存处理函数(使用栈链表保存、释放动态分配的内存地址),不允许任何函数直接分配和释放内存(4)防御性编程,对输入参数做有效性检查,并返回错误号(5)注意编程细节的打磨3.完整c程序参考资料编程既是技术输出也是艺术创作。鉴赏高手写的程序... 继续阅读 >
202204-20 C语言lseek()函数详解 头文件:#include<sys/types.h>#include<unistd.h>函数原型:off_tlseek(intfd,off_toffset,intwhence);//打开一个文件的下一次读写的开始位置参数:fd表示要操作的文件描述符offset是相对于whence(基准)的偏移量whence可以是SEEK_SET(文件指针开始),SEEK_CUR(文件指针当前位置),SEEK_END为文件指针尾返回值:文件读写指针距文件开头的字节大小,出错,返回-1lsee的作用是打开文件下一次读写的开始位置,... 继续阅读 >
202204-16 C语言中 printf 函数输出格式 printf()函数是格式化输出函数,一般用于向标准输出设备(例如屏幕)按规定格式输出信息。一、Printf输出格式1、输出十进制整数intmain(){//输出十进制整数%dprintf("输出的数字是:%d",666);return0;}//结果是6662、输出八进制整数intmain(){//输出八进制整数%oprintf("输出的数字是:%o",66);return0;}//结果是1023、输出十六进制整数intmain(){//输出十六进制整数%xprintf("输出... 继续阅读 >
202204-12 带你了解C语言的数据的存储 目录C语言当中使用的数据类型使用的类型整型类浮点类型内存当中的存储原码、反码、补码大小端什么是大小端浮点数的存储浮点数的存储浮点数的存储规则指数E从内存当中取出总结C语言当中使用的数据类型使用的类型char字符数据类型short短整型int整形long长整型longlong更长的整形float单精度浮点数double双精度浮点数这些里面又分为整型和浮点型整型类整型又分为有符号整型和无符号整型,[int]可以... 继续阅读 >