- 博客(18)
- 收藏
- 关注
原创 C++异常详解
实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了服务器开发中通常使用的异常继承体系public:,_id(id){}protected:int _id;
2024-09-10 17:39:40 909
原创 Linux进程控制
创建一个新进程,新的进程为子进程,原进程为父进程。返回值:自进程中返回0,父进程返回子进程id,出错返回-1当一个进程调用fork之后,就有两个二进制代码相同的进程。而且它们都运行到相同的地方。但每个进程都将可以 开始它们自己的旅程,看如下程序。
2024-05-14 10:58:21 636 1
原创 进程的概念(2)
指定进程获取某种资源(CPU)的先后顺序:优先级的本质是优先级数字的大小,Linux中优先级数字越小,优先级越高task_struct 进程控制快-> struct -> 内部字段 -> int prio =??nice =??优先级:已经能做了,是我们获取资源的顺序权限:能不能做的问题。
2024-04-26 17:36:38 944 3
原创 详解String(主要成员函数使用极其模拟实现)
注: size()与length()方法底层实现原理完全相同,引入size()的原因是为了与其他容器的接口保持一 致,一般情况下基本都是用size()。注:clear只将s中的字符串清空,清空时只是将size清0,而不改变底层空间的大小。表示string最大的一个值,但本质是-1,认为无论创建多大的对象都不会超过这个值。rbegin获取一个字符的迭代起(最后一个)+rend获。begin获取一个字符的迭代器+end获取最后一个字符。取最后一个字符的下一个位置的迭代器(开头的那个)
2024-03-16 21:05:12 1852 1
原创 类和对象(下)
【注意】友元类的所有函数都可以是另一个类的友元函数,都可以访问另一个类中的非公友成员。概念:如果一个类定义在另一个类的内部,这个内部类就叫做内部类。内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越的访问权限。(主要还是生命周期的问题)😯特性:在传参和传值返回值的过程中,一般编译器会做一些优化,减少对象的拷贝,这个在一些场景下还是非常有用的。
2024-03-09 21:18:55 814
原创 详解-C语言文件操作
这里的“流”是一个高度抽象的概念为什么我们使用scanf函数时,可以直接从键盘上读取数据,或者使用printf函数时,可以直接向屏幕上打印数据,那是因为:C语言程序,只要运行起来,默认就打开了3个流注:看得懂的是文本,看不懂的是二进制。
2023-10-14 20:18:09 102 2
原创 【C语言】库函数atio的使用
12h3hh,只返回12,因为后面有h不属于整数,所有会被忽视,而该h之后的其他数字也会被忽视.例如:123hhh,返回123,而后面的hhh将被忽视.字符串str,将其内容转化为整数,并以int返回。+123转化成123。例如:-123转化成-123。
2023-10-10 21:25:53 1073 6
原创 以例题形式详解数组
1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。3.除此之外所有的数组名都表示首元素的地址。4.sizeof只关注类型,不会理会数据具体内容及运算。
2023-07-08 17:30:05 283 1
原创 详解数据在内存中的存储(含代码分析)
基本的内置类型:char //字符数据类型 1byteshort //短整型 2byteint //整形 4bytelong //长整形 4byte || 8byte(c语言标志直规定long比int大即可,具体看系统位数)long long //长长整形 8byte。
2023-06-02 21:05:08 545
原创 详解C语言小游戏——扫雷
在写游戏之前,然后可以先去看一下扫雷的具体图面以及具体功能然后进行分析只是一个简单的扫雷界面,可以看出,该界面是由9*9组成的,所以我们在创建的时候,可以通过创建一个来实现这一界面。当我们点进去之后,就会显示该位置是不是雷,不是雷的话就统计周围有几个雷,然后显示在屏幕我们点的位置上(本上图是因为在网上找的,点进去之后如果不是雷并且周围没有雷就会显示一篇,只是通过函数递归实现的,具体后面我会详细介绍)
2023-05-09 20:16:06 210 6
原创 三子棋的实现--详解
实现类型三子棋这种代码比较多的小游戏,建议采用模块化实现,所以我们首先创建两个.c文件和一个.h文件创建完成之后,分别对两个.c文件包含头文件,这样子在头文件中直接包含各类C语言自带头文件时两个.c文件都可以使用,可以减少繁琐包含。创建完之后,就可以在test.c中开始我们的游戏实现了。因为我们是要玩一次不过瘾时可以继续玩的,对于这种情况我们可以运用do.....while();循环语句实现。
2023-05-07 21:22:25 318 2
原创 数组的越界--一道实例
以上这道题如果把i变量的创建放在arr之后,那就不会出现死循环,但最主要的还是arr数据越界访问的问题而不是变量创建的问题,所以在编写代码中尽量不要让数组越界访问,以免出现bug。我们知道,数据在内存中存储会根据数据类型相应的放在各自的区域,而像数组这些变量都是放在栈区的,通过调试窗口可以看出,此时的i和arr[12]的地址刚好相同,所以陷入的死循环。对于这个代码,运行结果是个死循环,为什么呢?
2023-04-26 12:46:48 201 2
原创 详解const、static关键字
由以上代码可以看出,在没有static修饰的时候每一次调用test函数,函数中i的值都会重新赋值,而当i变量由static修饰的时候,在test结束之后并没有被销毁,下次调用test函数时i的值仍然是上次调用时i++的值。我们在编写函数的过程中,如果要写出优秀的代码,那么在编写函数的过程中就要尽量的使用const修饰,这样可以避免当我们想要传入的参数不被修改时而不小心被修改导致bug的出现,增加了代码的可用性以及目的性。用const修饰函数,主要是防止在传参的时候,在被传入的函数中传入的参数被修改。
2023-04-23 20:52:01 10262 2
原创 C语言详解分支
在生活中,我们所做的每一种行为,都是顺序、选择、循环后的结果,而在C语言中,也存在着这些特殊的机构,用于应对现实中错综复杂的情况,使得编程更有现实性和实用性。一、什么是语句C语句可以划分为一下五大类:1.表达式语句1.1 C语言中的语句全部是表达式语句,表达式 语句由表达式和分号构成。表达式主要有:赋值表达式,逗号表达式,以及函数调用表达式等。1.2 C语言中赋值语句使用的是一种运算符“=”。只要在赋值表达式后面加上分号,就构成了一条语句,例如:a=b=5;2.函数调用语句。
2023-04-16 17:38:56 622 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人