小伙伴们,今天小易又要开始讲C++啦,上次我们了解了输入与输出,这次我们来看一下输出程序的另一部分,头文件和命名空间啦。记住老规矩,开始新的程序编写时记得注释掉之前的代码哦!
好了,废话不多说先上干货。
1.C/C++各种头文件
2024年08月23日
小伙伴们,今天小易又要开始讲C++啦,上次我们了解了输入与输出,这次我们来看一下输出程序的另一部分,头文件和命名空间啦。记住老规矩,开始新的程序编写时记得注释掉之前的代码哦!
好了,废话不多说先上干货。
1.C/C++各种头文件
2024年08月23日
三目运算符(a ? b : c)可以作为逻辑运算的载体
规则:当a 的值为真时,返回b的值 , 否则返回c的值
2024年08月23日
前面对选择排序,快速排序,希尔排序,归并排序,冒泡排序都进行了分析,最后一个是堆排序,刚开始实在不想写这个,感觉太麻烦了,无奈搜了一些面经,发现什么百度、腾讯、阿里等,他们都问到了堆排序,所以还是得认真聊一聊堆排序!
## 为什么要有堆排序?
堆非常典型的一个应用是优先队列,普通队列是先进先出,**优先队列则出队和入队无关,和他们各自的优先级有关!算法可以动态的选择优先级最高的任务执行!而任务的排序使用之前静态的排序方法是做不到的!**
2024年08月23日
信号是一种异步事件:信号处理函数和程序的主循环是两条不同的执行路线。很显然,信号处理函数需要尽可能快的执行完毕,以确保信号不被屏蔽太久。
为了避免一些竞态条件,信号在处理期间,系统不会再次触发它。
2024年08月23日
C语言中什么功能函数来完成的,每个函数都是一个可以重复使用的模块,通过模块间的相互调用,有条不紊地实现复杂的功能。可以说C程序的全部工作都是由各式各样的函数完成的。
C语言不但提供了丰富的库函数,还允许用户定义自己的函数。所以也把C语言称为函数式语言。
标准C语言(ANSI C)共定义了15 个头文件,称为“C标准库”,所有的编译器都必须支持,如何正确并熟练的使用这些标准库,可以反映出一个程序员的水平。
2024年08月23日
c语言作为程序员来说,是入门语言。c语言 的教材也是多的数不胜数,但是呢,有的c语言教材100-200多页,有的教材600页+,然而很多学者都是学的前者教材。
为什么大家常说的简单的c语言都可以编写那么厚的教材?其一,c语言并不简单,或者说,敢说c语言简单的人都不是一般人;其二,c语言知识点覆盖面广,200多页的教材只是教会了你怎么用,并没有教会你多少实质性内容;其三,很多实用的知识点,在200多页的教材也并没有体现出来。
2024年08月23日
当挂起进程的控制终端时,SIGHUP信号将被触发。对于没有控制终端的网络后台程序而言,它们通常利用SIGHUP信号来强制服务器重读配置文件。
默认情况下,往一个读端关闭的管道或socket连接中写数据将引发SIGPIPE信号。我们需要在代码中捕获并处理该信号,或者至少忽略它,因为程序接收到SIGPIPE信号的默认行为是结束进程,而我们不希望因为错误的写操作而导致程序退出。引起SIGPIPE信号的写操作将设置errno为EPIPE。我们可以使用send函数的MSG_NOSIGNAL标志来禁止写操作触发SIGPIPE信号。在这种情况下,我们应该使用send函数反馈的errno值来判断管道或者socket连接的读端是否已经关闭。此外,我们也可以利用I/O复用系统调用来检查管道和SOCKET连接的读段是否已经关闭。以poll为例,当管道的读端关闭时,写端文件描述符上的POLLHUP事件将被触发;当sock连接对方关闭时,socket上的POLLRDHUP事件将被触发。
2024年08月23日
readv函数将数据从文件描述符读到分散的内存块中,即分散读;
wirtev函数则将将多块分散的内存数据一并写入文件描述符,即集中写。
定义如下:
2024年08月23日
想象一下我们想创建一个程序,该程序在编译时将告诉我们如何使用C或C ++的标准进行编译。 显然,我们不能使用C和C
++都不具有的任何功能,因此不能使用模板魔术,因此我们将无法区分C ++ 98和C ++ 03或C ++ 11,C ++ 14 ,C ++
2024年08月23日
编译语言的翻译程序(编译器或解释器)总是按语法的规则来解释代码的,编程语言的设计者对语法规则的设计总有其合理性。C没有引用,C++试图做为C的升级版,引入引用有什么合理性?
1 引用的常量性质
引用具有常量性质,只允许有一次机会指向一个内存空间,避免了指针变量的东指西指引起的潜在问题。同时,引用不能指向NULL,也避免了指针指向NULL的一些问题。当然,也有一些场合是需要指向NULL的,这也是指针的价值所在,还有,指针也可以指向堆空间,当然,还可以应用在链式存储场合。引用是类型安全的,而指针不是 (引用比指针多了类型检查)。