- 博客(23)
- 收藏
- 关注
原创 C++类和对象(上)
(1)class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员;类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。(2)为了区分成员变量,一般习惯上成员变量会加一个特殊标识,如成员变量前面或者后面加_或者m开头,注意C++中这个并不是强制的,只是一些惯例。(3)定义在类里面的成员函数默认为inline。2、访问限定符(1)C++一种实现封装的方式,用类和对象的属性与方法结合在一块,让对象更加完善,通过访
2025-06-07 22:45:28
1292
原创 C++入门基础
引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间, 它和它引⽤的变量共⽤同⼀块内存空间。⽐如:⽔壶传中李逵,宋江叫"铁⽜",江湖上⼈称"⿊旋 ⻛";林冲,外号豹⼦头;类型& 引⽤别名 = 引⽤对象;int& b = a;int& c = a;//b和c是a的别名//也可以给别名b取别名,d相当于还是a的别名int& d = b;++d;//这里我们看到的地址还是一样的return 0;
2025-06-04 10:19:35
824
1
原创 Linux基础指令
要说Linux,还得从UNIX说起。(1)UNIX发展的历史•1968年,⼀些来⾃通⽤电器公司、⻉尔实验室和⿇省理⼯学院的研究⼈员开发了⼀个名叫Multics的特殊操作系统。Multics在多任务⽂件管理和⽤⼾连接中综合了许多新概念。•1969−1970年,AT&T的⻉尔实验室研究⼈员Ken Tompson和Dennis Ritchie,在采⽤很多Multics特点的基础上开发了UINX系统。它运⾏在⼩型机上,满⾜了系统对科研环境的要求。从。
2025-06-02 09:25:47
947
原创 C语言---编译和链接
处理#include 预编译指令,将包含的头⽂件的内容插⼊到该预编译指令的位置。将源代码程序被输⼊扫描器,扫描器的任务就是简单的进⾏词法分析,把代码中的字符分割成⼀系列 的记号(关键字、标识符、字⾯量、特殊字符等)。编译过程就是将预处理后的⽂件进⾏⼀系列的:词法分析、语法分析、语义分析及优化,⽣成相应的 汇编代码⽂件。前⾯我们⾮常简洁的讲解了⼀个C的程序是如何编译和链接,到最终⽣成可执⾏程序的过程,其实很多。在独⽴的环境中,程序。链接是⼀个复杂的过程,链接的时候需要把⼀堆⽂件链接在⼀起才⽣成可执⾏程序。
2025-06-02 00:50:20
676
原创 c语言文件操作详解
引言:如果没有文件我们写的程序的数据是存在电脑的内存中,如果程序退出,内存回收,数据就丢失了,想使数据进行持久化的保存,我们可以使用文件。数据的组织形式,数据文件被称为文本文件或二进制文件。流:可以被想象成流淌着字符的河。c程序对文件、画面、键盘等的数据输入输出都是通过流操作来完成的。
2025-05-23 17:31:54
1086
2
原创 C语言---动态内存管理、柔性数组
(3)包含柔性数组成员的结构用malloc()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。(ptr指向要调整的内存空间,ptr中存放的是要调整的内存空间的起始地址)释放ptr指向的空间,ptr中存放的是要释放的空间的起始地址。(2)与函数malloc的区别在于calloc会在返回地址之前把申请的空间的每个字节初始化为全0。注:(1)如果参数ptr指向的空间不是动态开辟的,那free函数的行为是为定义的。这个函数向内存申请一块连续可用的空间,并返回指向这一块的指针。
2025-05-23 09:29:39
598
原创 C语言---结构体 、联合体、枚举
(1)匿名枚举并声明变量// 匿名枚举:无枚举名,直接声明变量 statusenum {FAIL = 0,} status;printf("操作成功!\n");return 0;(2)枚举作为函数参数,类型安全检查// 定义枚举类型:方向// 函数参数为枚举类型,增强可读性case UP: printf("向上移动\n");break;case DOWN: printf("向下移动\n");break;case LEFT: printf("向左移动\n");break;
2025-05-21 11:27:53
930
2
原创 C语言内存函数与数据在内存中的存储
只能改字节,不能改元素)0.5的二进制形式是0.1,规定有效数字部分必须为1,就是1.0*2^(-1),其阶码为-1+127=126(表示为:01111110),而尾数1.0去掉整部分后为0,补齐0到23位。(-1)^s表示符号位,s=0,V为正数,当s=1时,V为负数,M表示有效数字,M是大于等于1小于2的,2^E表示指数位。(2)E全为0,此时浮点数的指数E(真实值)=1-127/1023,有效数字M不再加上第一位的1,而是还原为0.xxxxx的小数,这是表示正负0,以及接近0的很小的数字。
2025-05-18 23:28:08
1121
1
原创 数据结构与算法----顺序表和复杂度
时间复杂度是啥?官方黑话:描述算法运行时间随数据规模增长的趋势。人话翻译:你的代码在数据量爆炸时,会“慢成狗”还是“稳如老狗”?核心思想:- 不看具体执行时间(毕竟CPU不同)- 只看增长趋势(数据量n→∞时,谁跑得更优雅)【防秃指南】1. 递归时间复杂度:用**递归树**或**主定理**分析(比如斐波那契数列O(2ⁿ)是灾难)2. 均摊时间复杂度:像顺序表动态扩容,单次插入可能是O(n),但均摊后是O(1)3. 空间换时间:哈希表用O(n)空间换O(1)查询时间---
2025-04-06 15:43:49
1142
4
原创 字符函数和字符串函数
1、iscntrl:如果它的参数符合下列条件就返回真(任何控制字符)。2、isspace:空白字符、空格、换页符(\f)、换行(\n)、回车(\r)、制表符(\t)、垂直制表符(\v)3、isdigit:十进制数字(‘0~9’字符)4、isxdigit:十六进制数字,包括所有十进制数字字符,小写字母a~f,大写字母A~F5、islower:小写字母a~z6、isupper:大写字母A~Z7、isalpha:字母a~z或A~Z8、isalnum:字母或数字,a~z,A~Z,0~9。
2025-03-30 16:56:57
689
3
原创 指针深入理解(小朋友也能学会)超详细
指针加减按类型,> 比较减法测距离。>内存街道任你跳,> 越界一秒变砖机!现在,试试用指针运算写个循环,但别把程序跳崩了哦~ 😉。
2025-03-18 17:38:50
1255
7
原创 扫雷游戏的实现
首先设计三个源文件: 1、game.h(头文件) 2、test.h(用于测试代码) 3、game.cpp(存放实现扫雷游戏的具体代码) 这样做的好处是: 1、模块划分清晰、便于修改和拓展。2、实现代码复用,可以跨项目使用 3、减少编译时间。
2025-03-16 15:48:48
428
1
原创 vs实用调试技巧
调用堆栈窗口:显示当前程序执行的函数调用层次结构,能帮助了解程序的执行路径,快速定位到问题所在的函数调用。- 监视窗口:可手动添加要监视的变量或表达式,能同时监视多个变量,便于对比和跟踪它们在程序运行过程中的变化。- 修改变量值:在调试暂停时,可以在“即时窗口”中输入代码修改变量的值,以验证不同情况下程序的运行结果。- 自动窗口:调试暂停时,会自动显示与当前代码相关的变量及其值,方便快速查看。- 快速查看变量值:调试时,将鼠标悬停在变量上,会显示变量的当前值。
2025-03-14 01:03:59
247
原创 操作符详解
a 的二进制是 0101 , b 的二进制是 0011 ,则 a & b 的结果为 0001 ,即 1。例如: a >> 1 , a 为 5 (二进制 0101 ),右移1位后结果为 0010 ,即 2。例如: a << 1 , a 为 5 (二进制 0101 ),左移1位后结果为 1010 ,即 10。例如: ~a 的结果为 1010 (如果是8位表示),即 -6 (有符号数的补码表示)。- 逻辑或(||):只要两个操作数中有一个为真,结果就为真。
2025-03-13 22:28:39
1389
1
原创 static 用法,函数递归与迭代详解
3、static修饰函数(和static修饰全局变量类似):函数也是具有外部链接属性,只要在其他的.c文件中正确的声明也是可以使用的,static修饰函数,让函数的外部链接属性变成内部链接属性,使函数只能在自己所在的.c文件中使用,其他的.c文件无法使用。存储在静态区的变量和全局变量是一样的,生命周期和程序的生命周期一样了,只有程序结束,变量才销毁,内存才回收,但是作用域是不变的。很容易就写下如图的递归求斐波那契数列,斐波那契数列是不合适用递归的,但是要通过使用递归的形式来描述的。有没有可以解决的办法呢?
2025-03-10 13:45:45
539
1
原创 二分查找(折半查找)详解
第三次查找下标left是5,right是6,(5+6)/2=5(mid),值是6不等于7,所以还需要再次进行查找:还在右边;所以left再向右移动一位变为6,此时左右下标相等,再进行第四次的计算,(6+6)/2=6,(下标),此时它的值是7,我们找到值为7的下标是6。题目:给定一个升序的整型数组,这个数组中查找到指定的值,找到就打印n的下标,找不到就打印找不到。例如找到其中 k=7 的。二分查找也叫折半查找,效率高,但是条件苛刻,只有在有序的。数据才可以使用这种方法;接下来我就为大家介绍这种方法!
2025-03-07 19:06:51
321
6
原创 C语言:一维数组、二维数组 、函数 详解
函数在调用rand函数之前先调用srand函数,通过srand函数的参数seed来设置rand函数生成随机数的时候的种子,只要种子在时刻变化,每次生成的随机数序列也就变化起来了。随机数的生成:rand生成的随机数是伪随机的,是通过某种算法生成的随机数。2、变长数组:数组的大小是可以使用变量来指定的,在程序运行时,根据变量的大小来指定数组的元素个数,而不是说数组的大小时可变的。1、打印二维数组,date[3][5] 中表示是一个3行5列的二维数组,3是行,5是列,行数可以省略,但是。
2025-02-26 22:04:09
856
4
原创 C语言:分支和循环的应用:写一个“猜数字”游戏(扫雷)
/rand()%100的值在0~99加一就是1~100。printf("选择错误,重新选择!printf("恭喜你,猜对了\n");printf("退出游戏\n");printf("猜大了\n");printf("猜小了\n");//游戏的逻辑————1、生成随机数2、猜数字。printf("请猜数字:");printf("请选择:");case 1://玩游戏的逻辑。//整个工程调用一次就可以了。//设置随机数的生成起点。
2025-01-20 18:39:09
387
6
原创 C语言基础:语句(5种)、数据类型、算数操作符、占位符详解
如果使用sizeof计算长度,打印时需要用 printf 需要填写"%zd",因为sizeof运算符的返回值,c语言是无符号的整数,并没有有具体的数值,所以用 size_t 来统一表示sizeof的返回值类型,对应当前系统的sizeof的返回值类型。%c(字符)、%d(整数)、%f ( float )、 %c(字符)、%lf (double)、%Lf(long double)1、内置类型:字符型(character)、浮点型(float、double)、整形(int)、布尔类型(—Bool)
2025-01-13 18:58:12
1847
5
原创 c语言常见概念第二章
8、\b是一个退格键,光标回退一个字符,但是不删除字符(若\b在中间会覆盖一个其他字符,但是不删除其他字符)。如上图:表示将\后的八进制数字转换为十进制的数字,这个数字作为ASCII码值表示的字符就是打印的内容。-----strlen是一个库函数,用来求字符串长度的,统计的是字符串中\0之前的个数。12、\0就是\ddd这类转义字符的一种,用于字符串的结束标志,其ASCII码是0.
2025-01-13 08:35:50
837
9
原创 c语言常见基础
(2)main后边的()被漏掉。(3)代码中不能使用中文符号,比如括号和分号,(4)一条语句结束后,要有分号。c语言是编译型计算机语言,它是众多计算机语言中的一种,人们是通过计算机语言写的程序,给计算机下达指令,让计算机工作的,c语言源代码都是文本文件,文本文件本身无法执行,必须通过。注:stdio主要含义是: std------standard , input ,output。,即使一个项目中有多个.c文件,但是只能有一个main函数,因为程序的入口只能有一个!byte------字节 (
2025-01-12 19:10:50
1075
6
原创 新手“码农”关于编程的一些理解与心得
3、要选择合适的编程语言,比如对网页开发感兴趣,可以从HTML、CSS开始,无论学习那种编程语言首先基础语言C语言是必须要了解并且能够熟练运用的,为之后的编程做准备,理解最基本的编程语言的作用和基本语法。对于刚入门的新手的我来说,学习编程的目的是为了让我充实自己,拥有一种解决问题的能力,不断挑战自己,突破自己。1、学习编程是一个逐步的过程,永远不要低估自己日复一日的坚持,也不要高估自己几天的努力,总之,学习编程是一个日积月累的过程,需要一点点积累的,“速成”编程是不可能的!
2025-01-11 18:03:02
494
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人