6 守望之名

尚未进行身份认证

暂无相关简介

等级
TA的排名 1w+

高频面试题-如何交换两个变量值?办法没你想得那么多!

​来源:公众号【编程珠玑】作者:守望先生ID:shouwangxianshengC语言交换两个整型变量,你有哪些方法?那么多方法,又有哪几个可行?不可行的方法初学者最容易理解错的方法://来源:公众号【编程珠玑】//https://www.yanbinghu.com#include<stdio.h>voidswap(inta,intb){...

2020-01-11 20:32:58

解引用NULL会导致挂死?

来源:公众号【编程珠玑】作者:守望先生ID:shouwangxiansheng解引用NULL指针为什么会出错,导致程序挂死?或者说访问内存地址为0的位置为什么会视为非法?先了解NULL​参考《NULL,0,'\0'有何区别?》。解引用NULL解释问题之前,先描述问题。请看下面的代码://来源:公众号【编程珠玑】//https://www.yanbinghu...

2020-01-10 08:09:18

几个简单但你可能忽略的C知识点

C语言main函数的写法标准中,只有下面两种写法:intmain(void){/**body**/}以及intmain(intargc,char*argv[]){/**body**/}而C++的第二种与C类似,第一种是这样的:intmain(){/**body**/}参考《C语言的main函数到底该怎么写》​...

2020-01-04 08:53:00

换个角度说makefile

作为Linux下的C/C++开发者,没接触过makefile一定说不过去,通常构建大型的C/C++项目都离不开makefile,也许你使用的是cmake或者其他类似的工具,但它们的本质都是类似的。作为一个轻度使用者,应读者要求,斗胆介绍一下makefile,不过与普通的makfile教程不同的是,本文准备从另外一个角度来介绍。如有不妥之处,欢迎指出。makefie到底是什么在...

2020-01-04 08:46:57

多线程就一定快吗?天真!

​在《多线程排序》中介绍了多线程排序,似乎看起来多线程快了很多,然而多线程就一定更快吗?为什么多线程就不一定快?还是拿《多线程排序-真香!》中的程序举例,下面是各个线程数量的排序结果:线程数 时间/s 1 2.393644 2 1.367392 3 ...

2019-12-31 09:18:14

生成随机数的方式你选对了吗?

来源:公众号【编程珠玑】作者:守望先生ID:shouwangxiansheng生成随机数的N种方式首先需要说明的是,计算机中生成的随机数严格来说都是伪随机,即非真正的随机数,真正随机数的随机样本不可重现。那么我们来看看代码中有哪些方式可以生成随机数。randrand函数声明如下:#include<stdlib.h>intrand(void);...

2019-12-25 21:06:39

多线程排序-真香

​来源:公众号【编程珠玑】作者:守望先生ID:shouwangxiansheng在《系统编程-多线程》中已经了解了多线程的一些特点,其中包括快!那么今天就来看看如何利用多线程来排序。思路我们的思路是这样的: 假设有N个线程,则将数组数M据分为N组 每个线程对其中的一组数据使用库函数提供的快速排序算法 所有线程排序完成后,将每组排序好的数组合并 ...

2019-12-25 21:00:17

void*该如何理解?

原文地址:https://www.yanbinghu.com/2019/12/15/19682.html说到C就不得不提指针,而一提到指针,有一个是比较特殊的,那就是void*。void*到底是怎样的存在?​指针类型的含义在说明void*之前,先了解一下普通指针类型的含义。//来源:公众号【编程珠玑】//main.c#include<stdio.h...

2019-12-18 19:10:34

系统编程-文件I/O

​来源:公众号【编程珠玑】作者:守望先生ID:shouwangxiansheng我们都听过Linux下一切皆文件,实际上无论是普通的文件读写,还是网络IO读写,它们都有着类似的操作过程。本文通过基本文件IO操作,来了解Linux“一切文件”的读写。当然过程中穿插着很多其他内容。文件I/O过程在介绍具体的函数使用之前,我必须说明一下文件I/O的基本过程。它们类似过程如下:...

2019-12-14 10:51:16

善用shared_ptr,远离内存泄露(文末福利)

​来源:公众号【编程珠玑】作者:守望先生《为何优先选用unique_ptr而不是裸指针?》中说到,如果有可能就使用unique_ptr,然后很多时候对象是需要共享的,因此shared_ptr也就会用得很多。shared_ptr允许多个指向同一个对象,当指向对象的最后一个shared_ptr销毁时,该对象也就会自动销毁。因此,善用shared_ptr,能够远离内存泄漏。...

2019-12-12 21:26:53

不可不知的三种缓冲类型

​来源:公众号【编程珠玑】作者:守望先生原文地址:https://www.yanbinghu.com/2019/12/01/27836.html为什么有时候写入文件的内容却没有?没什么printf打印在终端的内容看不到?这一切背后有着怎样早为人知的秘密?今天来说说缓冲的事。也许你已经听说过三种缓冲模式,但是今天要讲的不止这些。缓冲为了减少使用read和write调用的次...

2019-12-07 21:13:52

如何让你的程序同时只能运行一个?

有些程序我们希望在一台机器上只有一个实例在运行,我在windows下也遇到过很多类似这样的程序,如QQ,它只允许同时运行一个。那么我们在Linux该如何实现这样的单例运行的程序呢?思路实现这样的程序方法很多,但是总体思路都是类似的: 1.启动程序,检测标志,判断是否有同样的程序运行,是则2,否则3 2.程序退出 3.程序启动,并设置标志,以便下次启动时检...

2019-12-02 21:32:08

聊点基础的--sizeof,strlen,数组,字符串在一起能整哪些坑?

对于初学者来说,sizeof,strlen,数组,字符串整在一起是痛苦的,它总能在某些莫名其妙的时候整一个措手不及。本文看看它们在一起能挖什么坑。例子在说明这些问题之前,先看一段代码,看看你是否都理解了。(注:以下代码结果为编译为64位程序后运行结果)//来源:公众号【编程珠玑】#include<stdio.h>#include<string.h>v...

2019-11-22 12:47:14

这个编程技巧别说我没告诉你

​前言有读者在后台留言说用c写一篇有限状态机的推文,正好之前也用过,就分享一下吧。背景先举一个简单的例子,假设是这样的,一个小孩有两种状态,睡眠,清醒。睡的时候可能会撒尿,微笑,撒尿之后会转为清醒状态,而清醒的时候可能会笑,会吃,吃完之后会转会睡眠状态用C语言实现,一般写法可能是这样的://来源:公众号【编程珠玑】#include<stdio.h>enum...

2019-11-16 08:59:40

工作中几乎用不到算法,为何要学算法?

前言不知道你有没有发现,非算法类的岗位,工作之后几乎没有用到什么算法,为什么还要学算法?本文谈谈自己的看法,不供参考。从用人者角度毋庸置疑,面试是用来筛选候选人的,在这个僧多粥少的时候,就需要提高筛选条件,例如最常见的学历,不是说学历一般的人不好,而是总体来说,学历好的人里面挑选到合适的概率比较大而已,这就是现实。而面试题中,算法相比于其他记忆型的题目,就能很好的体现一个人的逻辑...

2019-11-14 14:02:24

为何优先选用unique_ptr而不是裸指针?

前言​在《拥抱智能指针,告别内存泄露》中说到了内存泄漏问题,也提到了C++中的智能指针基本原理,今天就来说说类模板unique_ptr。在此之前,先回答读者的一个提问:C语言中该怎么办?有几点建议: 编写时尽量遵循函数内申请,函数内释放的原则 注意成对编写malloc和free 使用静态扫描工具,如《pclint检查》 使用内存检测工具,如valgr...

2019-11-11 21:16:45

Linux安装C++手册,就是这么简单

前言在Linux编写或者编译C代码的时候,直接使用man命令就可以查看该函数的使用手册,非常方便,如:man3sleep但是一般却没有C++的函数手册,怎么把C++的帮助手册也装在机器上呢?本文借助C++手册的安装,说明如何自助安装man手册。man原理如果你还不习惯使用man命令或者不清楚man命令的作用,那么建议你先看看这篇《linux必学命令-ma...

2019-11-08 09:25:38

超棒离线手册-每个开发者的福音

前言昨天在分享如何安装man手册时候,有读者留言提到了zeal,特意去体验了一下,感觉还不错,也分享给大家。在这里再次感谢读者【0x27】。zeal不知道你是否曾经想过,如果有一个工具,类似于软件管理工具,我要什么文档下载什么文档,然后就可以使用了,那该多好,就不用到处找文档了。zeal是一款属于开发者的离线文档工具,解决了你多个文档来回下载,翻看的烦恼。我找到了它的官网:...

2019-11-08 09:24:10

拥抱智能指针,告别内存泄露

前言我们都知道,当申请的内存在不用时忘记释放,导致内存泄漏。长期来看,内存泄漏的危害是巨大的,它导致可用内存越来越少,甚至拖慢系统,最终进程可能被OOM(out of memory)机制杀死。C与C++中的内存泄漏在C语言中,我们用malloc申请内存,free释放内存;在C++中,也可以使用它们,不过对于自定义类型,常常会使用new申请,delete来释放。它们都有同样的问题,...

2019-11-07 21:38:49

linux自助安装man手册,就是这么简单!

前言​在Linux编写或者编译C代码的时候,直接使用man命令就可以查看该函数的使用手册,非常方便,如:man3sleep但是一般却没有C++的函数手册,怎么把C++的帮助手册也装在机器上呢?本文借助C++手册的安装,说明如何自助安装man手册。man原理如果你还不习惯使用man命令或者不清楚man命令的作用,那么建议你先看看这篇《linux必学命令-m...

2019-11-05 22:16:30

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。