函数和进程之间的相似性
在一个C程序可以fork/exec另一个程序,其过程是先fork一个子进程,然后让子进程使用exec系列函数将子进程的代码和数据替换为另一个程序的代码和数据,之后子进程就用该程序的数据执行该程序的代码,从而达到程序之间相互调用的效果。在学了C语言、C++或是JAVA等高级语言,你会知道,在这些语言中的函数是可以相互进行见调用的,但是在学习了Linux的前面的知识后,你就会有意无意的认识到其实进程也是与函数有相同之处的,进程之间也是可以相互调用的。程序之间相互调用带来的好处之一。那么下面就将这部分内容扩展。
vector与list的简单介绍
vector是表示大小可以变化的数组的序列容器。就像数组一样,vector对其元素使用连续的存储位置,这意味着也可以使用指向其元素的常规指针上的偏移量来访问其元素,并且与数组中的元素一样高效。但与数组不同的是,它们的大小可以动态变化,它们的存储由容器自动处理。在内部,vector使用动态分配的数组来存储其元素。当插入新元素时,可能需要重新分配此数组才能增大大小,这意味着分配一个新数组并将所有元素移动到该数组。
学习atoi
然后,从该字符开始,接受一个可选的初始加号或减号,然后跟随尽可能多的十进制数字,并将它们解释为一个数值。④如果字符串str中第一个非空白字符序列不是有效的整数,或者如果不存在这样的序列,因为str为空或只包含空白字符,则不执行转换,并返回零。base-10 digits——十进制数字,即0、1、2、3、4、5、6、7、8、9这10个数字。③字符串可以包含形成整数的字符之后的其他字符,这些字符将被忽略,并不会影响此函数的行为。①解析C字符串str,将其内容解释为整数,并将其作为int类型的值返回。
c语言——二叉树
二叉树的概念在这里就不进行过多的赘述,那么主要说一下我认为重要的部分,第一点就是二叉树里面部分概念的理解:就比如说,你对于如何构建二叉树,掌握的十分深刻,但刷题的时候对于一些题目所给的概念不清楚,导致看不明白题目,这课不好,二叉树的概念如下图所示,其实都很简单,主要是当给他的名字时,你明不明白。还有对于满二叉树与完全二叉树。
冯 • 诺依曼体系结构
后经过内存与CPU的处理返回到显示器,就完成了一次信息的聊天。然后在网络当中经过一系列处理(这里忽略网络处理细节),之后你朋友的网卡从网络当中获取到你所发的消息后,将该消息加载到内存当中,你朋友的CPU再从内存当中获取消息并对消息进行解包操作,然后将解包好的消息写回内存,最后你朋友的显示器从内存当中获取消息并显示在他的电脑上。对,你的思考是正确的,但是理解是有点问题的,其实一个程序运行时必须将其相应的各种数据全都加载出来,加载的地方就为内存,加载出来后,如果要进行操作与修改,这时候CPU就开始工作了。
c++入门
c++作为面向对象的语言与c的简单区别:c语言作为面向过程的语言还是跟c++有很大的区别的,比如说一个简单的五子棋的实现对于c语言面向过程的设计思路是首先分析解决这个问题的步骤:(1)开始游戏(2)黑子先走(3)绘制画面(4)判断输赢(5)轮到白子(6)绘制画面(7)判断输赢(8)返回步骤(2) (9)输出最后结果。但对于c++就不一样了,在下五子棋的例子中,用面向对象的方法来解决的话,首先将整个五子棋游戏分为三个对象:(1)黑白双方,这两方的行为是一样的。(2)棋盘系统,负责绘制画面。
c语言的烫烫烫烫烫??
当初学习C语言时,对于一些特殊的打印输出可能会感到困惑,比如会出现一堆乱码烫烫烫的情况。这样做的好处是这些值都很大,作为指针是不可能的(而且 32 位系统中指针很少是奇数值,在有些系统中奇数的指针会产生运行时错误),作为数值也很少遇到,而且这些值也很容易辨认,因此这很有利于在 Debug 版中发现 Release 版才会遇到的错误。但是学的比较深的同学就会里面反应过来这个代码其实是有问题的,因为在字符数组里面,最后一位没有存储''\0'',所以在打印的时候不会遇见特殊结束标识符,不会停止打印;