
C/C++/C#
文章平均质量分 75
C语言家族专栏
Code Writers
全栈领域新星创作者,2023年博客之星Top95,阿里云专家博主、星级博主、技术博主,2022博客之星入围,6月城市(成都)之星Top8,2023新星计划潜力新星。
展开
-
OI常用算法模板
【代码】OI常用算法模板。原创 2024-02-20 14:18:52 · 689 阅读 · 0 评论 -
转载|这8首用代码写的诗歌,看懂3首就是大神!
用代码写诗,是一个程序员“装逼”的最高形式。下面这8首诗,看看大家能读懂几首呢?原创 2023-08-29 11:17:31 · 405 阅读 · 2 评论 -
C语言常用函数
【代码】C语言常用函数。原创 2023-08-21 11:21:15 · 104 阅读 · 0 评论 -
C语言宏定义详解
最简单的宏定义时间用指定的标识符来代表代码片段,当宏定义有多行时,需要在行尾使用\来连接。#define 宏名称 代码片段// 如(多行时,行尾使用\作为续行符)10242.0doublerand。原创 2023-08-17 11:43:41 · 1560 阅读 · 0 评论 -
CE+C实现PVZ修改器
上半年疫情在家的时候实在无聊,文艺复兴,把PVZ几个版本又玩了一遍,本来打算写个修改器,结果鸽到现在因为各种事情耽搁到现在。以后有时间就尽量更新,估计这个系列要写很久另:PVZ各版本合集搜“植物大战僵尸相关”就可以找到(还是西游版和β版本好玩。和网上大部分教程一样,本文也是通过CE寻找阳光基址,然后用C语言实现阳光数量的修改。原创 2023-07-22 18:54:11 · 597 阅读 · 0 评论 -
C语言套接字访问网页
第一个问题是上一章的东西,也就是 网站服务器是 服务端,我们只需要写一个客户单和他进行通信即可。第二个问题就是本节课重点了,如何通信,按照什么规则来通信?接下来就为大家讲简单的说下 http协议(更详细的,可以点开左边的链接看看)。http协议其实就是 浏览器和服务器之间传输数据的时候 所约定的一个 数据格式。我们只要了解了这种格式,我们就可以模拟浏览器的行为,给服务端发送特定格式的内容,他就会返回给我们特定格式的内容。那么,这个格式是怎么样的呢?下面是一个最简单的请求格式。原创 2023-07-19 17:16:22 · 317 阅读 · 0 评论 -
C语言实现面向对象程序设计模式
上面第一条类体现了面向对象的思想,而后三条是体现面向对象的三个特性:封装,继承,多态。相信很多人第一次看到这个问题,脑海中一下子没有思路,但仔细想想能想到会用结构体来封装属性,但是把方法放到结构体中似乎在C语言中是不允许的,那么我们又必须把方法封装进去,这时进一步我们又想到了使用函数指针,然后通过某个函数将函数名赋给这些函数指针就可以给结构体对象调用了。至此我们可以完成第一个任务—定义一个含有属性和方法的类,由于是结构体实现,我们就叫它结构体类。然后构造函数和析构函数如何实现呢?原创 2023-07-17 10:39:29 · 1179 阅读 · 0 评论 -
C语言rectangle扩展
【代码】C语言rectangle扩展。原创 2023-07-15 20:50:15 · 133 阅读 · 0 评论 -
ChatGPT文章:C语言开发技巧
----- Oracle中文开发者社区 ------如果你想要学习编程,关注本博客,持续获得技术支持,持续获得技术咨询。原创 2023-02-12 16:53:57 · 754 阅读 · 0 评论 -
C# / Java 调用 Rust DLL 删除文件夹
----- Oracle中文开发者社区 ------如果你想要学习编程,关注本博客,持续获得技术支持,持续获得技术咨询。原创 2023-02-09 11:50:32 · 486 阅读 · 0 评论 -
C++内联函数效率
关键字inline是C++相对于C语言的又一个扩充,在函数的声明或定义、函数的返回类型前加上关键字inline,即可把函数指定为内联函数从而提升程序运行的效率。但使用inline是要付出代价的,正如茨威格在《断头王后》中那样写道:“ 那时候她还太年轻,不知道所有命运馈赠的礼物,早已在暗中标好了价格。” 那么inline的优势和它为此要付出的代价是什么呢?让我们来慢慢揭晓!定义和声明分离的后果是什么?f(10);return 0;运行结果:为什么普通函数可以将定义和声明分离,而内联函数不行呢?原创 2023-02-06 16:48:23 · 286 阅读 · 0 评论 -
C语言:宏和预处理
我们最常使用到的#define的用法就是用#define来定义一个符号常量,而要修改时,只需修改#define这条语句就行了,不必每处代码都修改# include "stdio.h" # define PI 3.14 # define STR "圆周率约等于" int main() {//预处理时会被替换为 printf("%s %f","圆周率约等于",3.14);return 0;3.14。原创 2023-01-26 19:10:19 · 111 阅读 · 0 评论 -
C语言小游戏 扫雷
本期我们将实现一个9X9格的扫雷游戏,因此我们可以构建两个二维数组,一个数组存储每一格是否有雷,有雷存储字符’1’,没雷存储字符’0’;而另一个数组则用来打印输出,当排查到时则存储周围雷的数量并打印,当没有被排查时则打印字符’*'以确保雷的隐藏性。由于我们排查时需要计算周围存在雷的数量,如果数组设置为9X9会发生数组越界的问题,为了方便计算,我们将数组设置为11X11的数组以避免数组越界。原创 2023-01-17 14:42:41 · 133 阅读 · 0 评论 -
使用Java为何总写出C风格的代码?
编程范式指的是程序的编写模式。编程范式对程序员的能力施加了约束,理解编程范式的一个关键点在于,哪些事情不要做。编程范式与具体语言的关系不大,但很多语言都有着自己主流的编程范式。但现在的一个趋势是,打破编程范式的“次元壁”,把不同编程范式中优秀的元素放在一起。可以通过设计,模拟出其他编程范式中的元素程序设计语言的发展趋势也是要融合不同编程范式中优秀的元素学习不同的编程范式,已经成为每个程序员的必修课。学习不同的编程范式,将其中优秀的元素运用在日常工作中。原创 2023-01-15 10:08:01 · 120 阅读 · 0 评论 -
标准库中的string类
后面为了解决计算机流通的问题,又引入了Unicode(万国码)string s;//默认结束符合为\n,当然也可以自己给定 int pos = s . rfind(' ');return 0;原创 2023-01-12 10:05:36 · 330 阅读 · 0 评论 -
malloc函数用法
malloc函数是一种分配长度为num_bytes字节的内存块的函数,可以向系统申请分配指定size个字节的内存空间。malloc的全称是memory allocation(动态内存分配),当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。返回类型是void∗类型。void∗表示未确定类型的指针。C,C++规定,void∗类型可以通过类型转换强制转换为任何其它类型的指针。原创 2023-01-08 17:19:31 · 8122 阅读 · 0 评论 -
C语言bug集锦
那么b中的值应该是什么呢?是1,2,3,4,5还是1,2,3,4;答案是b和a永远保持一致,是1,2,3,4;b=a后b和a指向了同一个内存地址,这时候a变化了后,打印b时,打印的是相同的一片空间。再看下这个代码我只需给graph申请空间,就可以直接操作Node了,因为graph结构体中有node,我申请了graph就自然给node也分配了内存空间。但是却无法正确执行,是因为虽然对p指针进行了声明,但是没有赋予他内存空间,正确的写法应该改。上面的大家应该都明白,但是下面这个,是同样的原理就有很多人犯糊涂。原创 2023-01-08 17:07:41 · 416 阅读 · 0 评论 -
判断文件是否读到结尾
fgetc() 或getc() 等函数返回EOF并不一定表示文件结束,当读取文件出错时也会返回EOF,仅凭返回 -1 就认为文件结束是错误的;正因为如此,我们需要feof()来判断文件是否结束,当然用feof()来判断文件结束时也需要判断读取操作是否出错,这时可以用ferror()来判断,当其为真时表示有错误发生。当文件内部的位置指针指向文件结束时,并不会立即设置FILE结构中的文件结束标识,只有再执行一次读文件操作,才会设置结束标志,此后调用feof()才会返回为真。【参数】stream为文件流指针。原创 2023-01-08 16:59:49 · 592 阅读 · 0 评论 -
哈希桶的实现
所有桶号相同的表 项都链接在同一个同义词子表中,各链表的头结点组成一个向量,因此,向量的元素个数与可能 的桶数一致。通常,每个桶中的同义词子表都很短,设有n个关键码通过某一个散列函数,存放到散列表中的m个桶 中,那么每一个桶中的同义词子表的平均长度为n/m。这样以搜索平均长度为n/m的同义词子表代替了 搜索长度为n的顺序表,搜索效率快的多。相信大家可以看出来,使用一个数组来存放记录方法的哈希冲突太多,基于载荷因子的束缚,空间利用率不高,在需要节省空间的情况下,我们可以用哈希桶来处理哈希冲突。原创 2023-01-08 16:35:50 · 175 阅读 · 0 评论 -
C语言-字符串处理
字符串在C语言里使用非常多,因为很多数据处理都是文本,也就是字符串,特别是设备交互、web网页交互返回的几乎都是文本数据。字符串本身属于字符数组、只不过和字符数组区别是,字符串结尾有’\0’。字符串因为规定结尾有’\0’,在计算长度、拷贝、查找、拼接操作都很方便。char buff [ ] = "我是一个字符串";在普通的字符数组结尾加一个 \0 就变成了字符串。原创 2023-01-07 17:41:28 · 1913 阅读 · 0 评论 -
C++:友元
首先,声明一个要访问的私有变量所属的Building类,防止在下面的好LaoWang类中,编译器不认识Building(当然也可以采取先定义Building类,再定义隔壁老王LaoWang类,这样就不用声明Building类了)下面给出类外定义成员函数,需要注意的是,在类外定义,需要在成员函数加上所在类的作用域(类名::成员函数名()),以便于告诉编译器,该成员函数属于哪个类。其中定义两个访问函数。同样的,现在还没有声明友元,因此类中的成员函数还不能访问另一个类的私有成员。原创 2023-01-05 14:02:43 · 221 阅读 · 0 评论 -
c++线程同步——条件变量(condition_variable)
使用条件变量的意义在于,消费者在没有可消费的产品时,采用休眠,而非无意义的空转,浪费cpu的计算资源。原创 2023-01-04 12:54:58 · 230 阅读 · 0 评论 -
c++线程同步——互斥(mutex)
互斥算法避免多个线程同时访问共享资源。这会避免数据竞争,并提供线程间的同步支持。前四个定义于头文件,后两个定义于头文件互斥类型解释提供基本互斥设施(类)提供互斥设施,实现有时限锁定(类)提供能被同一线程递归锁定的互斥设施(类)提供能被同一线程递归锁定的互斥设施,并实现有时限锁定(类)提供共享互斥设施(类)提供共享互斥设施并实现有时限锁定(类)通用互斥管理定义于头文件互斥管理解释实现严格基于作用域的互斥体所有权包装器(类模板)原创 2023-01-04 12:49:10 · 1957 阅读 · 0 评论 -
Linux下FILE*结构体
(2)ANSI标准C库函数是建立在底层的系统调用之上,即C函数库文件访问函数的实现中使用了低级文件I/O系统调用,ANSI标准C库中的文件处理函数为了减少使用系统调用的次数,提高效率,采用缓冲机制,这样,可以在磁盘文件进行操作时,可以一次从文件中读出大量的数据到缓冲区中,以后对这部分的访问就不需要再使用系统调用了,即需要少量的CPU状态切换,提高了效率。因为标准I/O库每行的缓冲区长度是固定的,所以只要填满了缓冲区,即使还没有遇到换行符,也会执行I/O系统调用操作,默认行缓冲区的大小为1024。原创 2023-01-03 17:20:15 · 520 阅读 · 0 评论 -
ODBC连接数据库详细说明
开放数据库互连(ODBC)是微软提出的数据库访问接口标准。开放数据库互连定义了访问数据库的API一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言。通过使用ODBC,应用程序能够使用相同的源代码和各种各样的数据库进行交互。这使得开发者不需要以特殊的数据库管理系统DBMS为目标,或者了解不同支撑背景的数据库的详细细节,就能够开发和发布客户/服务器应用程序。下面是ODBC应用系统的体系结构。原创 2023-01-01 13:39:17 · 3473 阅读 · 0 评论 -
“Go 2” 正式落地,中国 Gopher 踏上新征程
正如组织官网所言:Go 语言中国区贡献者俱乐部希望能在这股中国的 Go 语言浪潮中尽其所能,通过鼓励并帮助更多的中国 Gophers 向上游 Go 社区贡献代码,并在国内的 Go 语言社区中定期分享 Go 工具链的内部实现机制,助力国内社区的繁荣发展以及和国内 Gophers 共同学习成长,共同建设国内的 Go 生态,并愿意尝试作为沟通中国 Go 社区和 Go 语言官方的一道桥梁。Go 2 是相对于 2012 年 Google 发布的 Go 1.0 的叫法,是代表包含泛型特性的 Go 2.x。原创 2022-12-22 16:02:28 · 1346 阅读 · 0 评论 -
阐述C、C++、C#的区别
C++ 是在C的基础上改进后的一种编程语言,主要是增添了许多新的功能,难度也比C大,和C一样侧重于计算机底层操作,也就是系统软件的开发。而 C++ 对于大多数的函数都是有集成的很紧密,特别是 C 语言中没有的 C++ 中的 API 是对 Window 系统的大多数 API 有机的组合,是一个集体。4,C 和 C++ 中都有结构的概念,但是在 C 语言中结构只有成员变量,而没成员方法,而在 C++ 中结构中,它可以有自己的成员变量和成员函数。3,特别是 C++ 中的图形处理,它和语言的图形有很大的区别。原创 2022-12-21 20:07:40 · 2937 阅读 · 0 评论 -
在c/c++中调用Java方法
编译需要头文件, 头文件在这两个目录中%JAVA_HOME%\include和%JAVA_HOME%\include\win32, 第一个是与平台无关的, 第二个是与平台有关的, 由于笔者的系统是windows, 所以是win32.我们知道Java中构造函数有两种, 一种是默认的没有参数的, 一种是自定义的带有参数的. 对应的在C/C++中, 有两种调用构造函数的方法.JVM在Java中都是自己启动的,在C/C++中只能自己来启动了, 启动完之后的事情就和在Java中一样了, 不过要使用C/C++的语法.原创 2022-12-21 20:02:40 · 386 阅读 · 0 评论 -
八大排序算法详解
在日常生活中,我们经常需要对收集到的各种数据进行处理,这些数据处理中用到的核心运算就是排序。例如,手机App中的各种排行榜,每年都会有的全国高校排行榜等等,它们都是按照一定的规律来进行排序的。目前已有上百种排序算法,此篇博客将介绍几类经典而又常用的排序算法,包括基本的算法思想、实现代码及性能分析。所谓排序,就是将待排序文件中的记录按照其中的某个或某些关键字的大小,递增或递减的排列起来,即将一组无序的记录序列调整为有序的记录序列。1.排序的稳定性。原创 2022-12-16 08:42:35 · 261 阅读 · 0 评论 -
【C++11】三大神器之——右值、移动语义、完美转发
如果你还不知道C++11引入的右值、移动语义、完美转发是什么,可以阅读这篇文章;如果你已经对这些知识了如指掌,也可以看看有什么可以补充~😏。原创 2022-12-15 14:26:57 · 519 阅读 · 0 评论 -
沉痛悼念织梦创始人林学先生,他为网站开源系统打开了大门
在以往,当只有 DedeCms 开源,其它都不开源的时候,一些恶意评论都在攻击说 Dede 是假开源,不过当大家都开源后,这种思想就不再存在了,我们讨论的是系统的开放性,不是讨论什么 GPL 协议,因为这几个 CMS 都是不遵守 GPL 协议的,都有中国特色的加上了“非商业用途免费”这个说明,当然用“盗版”的中国人是相当的多的。DedeCms 的模板基本上都是以文件形式存放的,这样的好处是极为有利于共享,单论模板共享数量,也无可否认,DedeCms 是最多的,这个在他们论坛的模板风格区就能体现出来。原创 2022-12-13 19:42:05 · 2196 阅读 · 0 评论 -
浅谈++i与i++
而对于自定义类型的前置和后置操作,你可能会有疑问,为什么编译器不能像优化内置类型一样,优化自定义类型呢?后置操作和前置操作,一个会产生临时变量,一个不会产生临时变量,其原因是:前置操作遵循的规则是change-then-use,而后置操作遵循的规则是use-then-change。自入行以来,无论是查阅资料、技术博客亦或是同事间的技术交流,都有一个共识:在循环的时候,务必使用前置操作符,因为其性能优于后置操作符,久而久之,这个就像一个不成文的规定,大家都在遵循,久而久之,成为潜移默化的编码习惯。原创 2022-12-10 12:08:15 · 1127 阅读 · 2 评论 -
编程初学者应该先学C++、Java还是Python?
语言推荐:第一大类语言包括Java、C、Python和C++. 这类语言都是非常通用的语言,它们并不局限于特定的编程平台或用途。(无疑问,你应该熟悉这四种语言。)第二大类语言包括Java、C#、PHP和Swift。 Java 和PHP是主要的Web开发语言。C# 是微软的编程语言,而Swift是苹果新推出的主力语言。基本上来说,它们是平台相关的。第三类语言则是Objective——C和R。1、java——大众化的编程语言Java是历史最悠久的编程语言之一。 Java可谓 是Web应用程序、桌面程序、操作系原创 2022-12-06 10:08:45 · 3212 阅读 · 0 评论 -
C/C++:双重循环中的break
break语句的执行只会导致其所在层的循环被中止。在一个嵌套的双重循环中,处于内层循环内的break被执行时,只会导致内层循环的中止,外层循环不受影响。本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载,但需要注明原作者"海洋饼干叔叔";本文不允许以纸质及电子出版为目的进行抄摘或改编。1.《Python编程基础及应用》,陈波,刘慧君,高等教育出版社。免费授课视频 Python编程基础及应用2.《Python编程基础及应用实验教程》, 陈波,熊心志,张全和,刘慧君,赵恒军,高原创 2022-12-05 10:39:02 · 1125 阅读 · 0 评论 -
C语言回调函数
一、函数指针在讲回调函数之前,我们需要了解函数指针。我们都知道,C语言的灵魂是指针,我们经常使用整型指针,字符串指针,结构体指针等int *p1;char *p2;STRUCT *p3; //STRUCT为我们定义的结构体但是好像我们一般很少使用函数指针,我们一般使用函数都是直接使用函数调用。下面我们来了解一下函数指针的概念和使用方法。1.概念函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。函数指针可以像一般函数一样,用于调用函数、传递参原创 2022-12-04 13:20:07 · 581 阅读 · 0 评论 -
What are the basic mathematical knowledge in computer graphics?
计算机图形学中使用了大量数学知识,尤其是矩阵和线性代数。虽然我们倾向于认为3D图形编程是紧跟最新技术的领域之一(它在很多方面确实是),但它用到的很多技术实际上可以追溯到上百年前,其中一些甚至是由文艺复兴时期的伟大哲学家们认识到并记录的。3D图形学中几乎每个方面、每种效果——移动、缩放、透视、纹理、光照、阴影等,都在很大程度上以数学方式实现。这里,我们假设读者具备基础的矩阵运算知识。对于基础矩阵代数的完整讲解超出了本书的范围。因此,如果读者在任何时候发现自己不理解特定的矩阵操作,则应当先找一些相关材料阅读,确原创 2022-12-03 15:55:59 · 652 阅读 · 0 评论 -
计算机视觉专家:如何从C++转Python
有人说用 Python 编程很简单,6 岁小孩都能学会。计算机视觉专家和编程语言爱好者 asya f 刚开始上手 Python 时也这么想。但门槛低就仅意味着使用简单吗?经常调用 API 的人是不是一定比可以从零写出源码的人菜?在本文中,asya f 告诉我们,从 C++转向 Python,是一次「从个人到社区」的思维转变。转载自丨机器之心从 C++ 转 Python 的时候,我已经是一个有四年全职工作经验的软件开发者了。我的工作主要是用 C++在 Linux 上编程,是 QT 库的重度用户。但刚开始用 P原创 2022-12-03 15:36:40 · 486 阅读 · 0 评论 -
Java宿主系统——native
在 HelloWorld.h 文件中我们引入了 jni.h文件,所以也应该把 jni.h 文件放到同一级目录下面,关于这个文件和相关的文件读者可以到JDK的安装目录下面的include下面查找,更多信息可以查看JDk、JRE、JVM的关系。笔者对这里加载的理解,就是利用反射机制,在运行的时候找到hello.dll文件并且解析,根据动态链接库中的文件名称创建出对象和方法,然后我们就可以利用对象调用方法了。如果我们引入的是被人的.cpp文件,那么根据.cpp文件中的方法名,在需要的地方做适当调整就可以调用了。原创 2022-11-27 17:10:28 · 191 阅读 · 0 评论 -
C语言三种基本结构
在switch中,break语句的实际效果是把语句列表划分为不同的分支部分,其实就是跳出switch语句,如果没有break语句,那么语句就会一直向下执行,直到语句结束。其实else是与最近的if匹配(这里是语句2),当语句1不执行的时候,语句2表示:我压根没有发挥的机会,所以更别说它的小弟else了。if (a >= b)//表达式1//表达式1成立执行下面的代码块(语句1到语句a),不成立则执行语句2。if (x >= 0 && x < 40)//表达式1成立则执行语句1,不成立,则判断表达式2。原创 2022-11-26 16:34:28 · 494 阅读 · 0 评论 -
C语言递归函数
递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小。原创 2022-11-24 20:03:32 · 221 阅读 · 0 评论