- 博客(14)
- 收藏
- 关注
原创 Linux常用指令,热键和权限管理
功能:类似cat,适用于较大文本,会以一页一页的形式显示,方便逐页阅读,按空白键(space)就往下一页显示,按b键就会往回一页显示,按q退出阅读,而且还有查找字符串的功能。功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。对于文件,将列出文件名以及其他信息。蓝色圈住的9位字符代表了文件的基本权限,其中r代表可读,w代表可写,x代表可执行。
2024-10-30 22:14:26
1205
原创 线程池C/C++代码实现
通俗一点来说,任务队列就是一个放任务的地方,当有任务到来的时候,就会唤醒消费者线程来消费任务,管理者线程是用来瘦身或者增容的时候发挥作用的,线程池里面是有一套算法的,基于忙线程数和存活线程数和一些其他的条件来共同进行影响的,这些是管理者线程干的事情,当我们访问公共资源的时候,我们需要进行设置锁,当任务队列的任务数为0或满的时候,我们又需要来设置条件变量,这就是线程池的基本实现原理,具体的还是要看代码的实现,C代码和C++代码实现起来还是有点区别的,代码在下面。线程池就可以提高我们的效率。
2024-10-23 23:05:20
424
1
原创 类和对象(下)
在这里,我们把没有被 const 修饰的成员函数去掉了,结果两个调的都是 const 修饰的函数,是不是可以得到 没有被const 修饰的对象也可以调到被 const 修饰的成员函数,上面我们用 const 修饰的对象调非 const 修饰的成员函数,结果是报错的,我们就可以下个结论了,这个 const 是不是有点可以把权限放小的感觉啊,我们可以用非 const 修饰的调 被 const 修饰的,我们不可以用 const 修饰的去调 非 const 的修饰的。表示在该成员函数中不能对类的任何成员进行修改。
2024-10-15 21:58:38
1167
原创 类和对象(上)
C语言是面向过程的,关注的是过程,C++是面向对象的,关注的是对象。对于洗衣服这件事情,总共有四个对象,人,洗衣粉,洗衣机,衣服。我们在洗衣服的时候,会先把洗衣机打开,然后把衣服放进去,然后放洗衣粉进去,开启洗衣机,等到洗衣机洗干净之后也会自己进行甩干。这是洗衣服的过程。这个过程是通过四个对象交互进行完成。public: //权限void Print() //成员函数public://成员变量int _age;//分号不能省略。
2024-10-10 21:56:44
1164
原创 C++继承和多态
继承我们可以理解为是一种手段,我们是不是可以从其他的地方继承一些东西来供自己使用,继承是面向对象程序设计使代码可以复用的一个很重要的手段。我们可以再保持原有类特性的基础上进行扩展,增添一些其他的功能,而这种新产生的类,就叫做派生类。class Person //基类public:protected:private:class Student : public Person //派生类protected:int main()Student s;
2024-09-30 22:25:11
1920
原创 数据结构代码实现
数据结构是计算机专业中一门综合性的基础课程,它是介于数学,计算机硬件和计算机软件的三者之间一门核心课程,同时,数据结构是设计数据库,程序,操作系统,游戏等等设计方面的重要基础,是绝大多数计算机专业考研的指定科目,也是大公司面试时常考科目,同时,也是高中及大学的学课竞赛中必备知识,优秀的数据结构和算法,可见数据结构在计算机课程中的重要性。链表的基本思维是,利用结构体的设置,额外开辟出一份内存空间去作指针,它总是指向下一个结点,一个个结点通过NEXT指针相互联系,串联,这就形成了我们的链表。
2024-09-27 18:44:58
831
1
原创 c语言指针进阶部分
我们在创建数组的时候,会给我们分配一块内存,同时这个数组有地址,地址就是首字符的地址,让我们去往里面去放东西,这一次我们放的是 hello world ,这个时候,我们又创建了一个数组,又会为我们分配一块内存,同时这个数组也有地址,让我们去往里面去放东西,这一次我们放的也是 hello world ,所以这两个数组里面的内容是一致的,但是地址不一样,我们比较的是数组名,数组名就是首元素的地址,就是比较地址。在这里我们打印的是函数的地址,我们可以看到加不加&取地址符号结果都是一样的,这是不是和数组差不多啊。
2024-09-25 20:52:55
1806
原创 指针初阶及使用
我们知道,函数在调用结束的时候,这块内存会被回收,就是说我们不能够在随心所欲的访问这一块的内容了,这个时候我们不是得到了一个地址,但是这个地址我们是不能够访问的,这个指针也就是一个野指针,就好比你曾经是这个房子的主人,但是你把这个房子卖给其他人了,但是这个房子的钥匙你还有,你有钥匙你就能随心所欲的进入这个房子吗?上面我们可以看到n的地址就是首字节的地址,而对指针进行加1,int 类型加了4,而char 类型加了1,我们就可以得出一个结论了,指针的类型决定了指针向前或者向后走一步有多大(距离)。
2024-09-12 23:38:22
905
原创 函数的使用
这里是我搜索strcmp出来的结果,里面把参数返回值以及用法都很清楚的告诉大家了,我们在学习的时候可以多翻翻这里的文档,不仅对我们的编程能力有所提高,我们遇到不会的词可以翻译一下,多看几遍之后,对我们的英语单词也有点帮助。这个时候我们看到,此时交换变量的值就相当于我们拿着这个地址找到了这个变量并进行了交换,结合上面的例子就是我们拿着主房子的地址去找主房子,然后把主房子里面的蛋糕交换了一下位置,这种方法是可行的。可以看到这个时候,刚进到函数的内部,我们赋值也完成了,x 是 10, y 是 20,
2024-09-10 23:13:41
984
原创 深度理解重载函数
这个时候又来了两个函数,看一下这两个函数的区别,第一个函数两个形参,第二个函数也是两个形参,唯一的区别就是两个形参的类型不一样,而且第一个函数的int 类型的形参在第一个位置,而第二个函数的形参在第二个位置,这个时候程序也是能跑起来的,说明这两个函数也可以函数重载,说明形参的类型以及位置对函数重载也是有关系的。这里下面的报错说Add重定义,说明这两个函数没有构成重载,仔细观察一下这两个函数,它们的形参类型好像是相同的,形参的个数也是相同的啊。而c就是单纯的函数名。这里就可以看出,重载函数的类型是不同的。
2024-09-07 20:35:26
805
原创 进一步了解分支和循环语句以及简略二分实现
当 i==5的时候 满足条件,进入 if 执行continue ,continue的作用就是continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分(这里 i 的值一直是5,不停的进入循环,导致死循环)。如果我们省略了第一个表达式,这个时候,当 i==0的时候,下面的循环会循环10次,此时 j= =10,如果下面的循环第一个表达式不写的话。这里还是进入死循环了,和while的情况一样,进入死循环的道理也是一样的,可以类比学习一下。
2024-09-07 15:13:15
1203
2
原创 C语言变成可执行程序的过程
库名就是去掉lib以及.后面的东西,剩下的就是库名,所以就可以证明它是链接了c语言库。这里的.exe文件就对应了上面的mytest文件。这是在自己存放代码的地方找到的。这里的.obj文件就对应了上面的.o文件,这个文件是在自己存放代码的地方找到的。链接的时候gcc会根据文件,进行默认的链接(是由编译器和文件共同决定的)蓝色箭头所指的是我要找的东西,libc-2.17.so。红色箭头所指的是我要找的东西在哪一个文件下面。把我们的c语言代码转换成了相应的汇编代码。.so结尾的一般都叫做动态库。
2024-09-04 18:01:28
676
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅