- 博客(12)
- 收藏
- 关注
原创 聊点基础的--sizeof,strlen,数组,字符串在一起能整哪些坑?
对于初学者来说,sizeof,strlen,数组,字符串整在一起是痛苦的,它总能在某些莫名其妙的时候整一个措手不及。本文看看它们在一起能挖什么坑。例子在说明这些问题之前,先看一段代码,看看你是否都理解了。(注:以下代码结果为编译为64位程序后运行结果)//来源:公众号【编程珠玑】#include<stdio.h>#include<string.h>v...
2019-11-22 12:47:14 1042 2
原创 这个编程技巧别说我没告诉你
前言有读者在后台留言说用c写一篇有限状态机的推文,正好之前也用过,就分享一下吧。背景先举一个简单的例子,假设是这样的,一个小孩有两种状态,睡眠,清醒。睡的时候可能会撒尿,微笑,撒尿之后会转为清醒状态,而清醒的时候可能会笑,会吃,吃完之后会转会睡眠状态用C语言实现,一般写法可能是这样的://来源:公众号【编程珠玑】#include<stdio.h>enum...
2019-11-16 09:00:35 727 1
原创 工作中几乎用不到算法,为何要学算法?
前言不知道你有没有发现,非算法类的岗位,工作之后几乎没有用到什么算法,为什么还要学算法?本文谈谈自己的看法,不供参考。从用人者角度毋庸置疑,面试是用来筛选候选人的,在这个僧多粥少的时候,就需要提高筛选条件,例如最常见的学历,不是说学历一般的人不好,而是总体来说,学历好的人里面挑选到合适的概率比较大而已,这就是现实。而面试题中,算法相比于其他记忆型的题目,就能很好的体现一个人的逻辑...
2019-11-14 14:02:24 2304 1
原创 为何优先选用unique_ptr而不是裸指针?
前言在《拥抱智能指针,告别内存泄露》中说到了内存泄漏问题,也提到了C++中的智能指针基本原理,今天就来说说类模板unique_ptr。在此之前,先回答读者的一个提问:C语言中该怎么办?有几点建议: 编写时尽量遵循函数内申请,函数内释放的原则 注意成对编写malloc和free 使用静态扫描工具,如《pclint检查》 使用内存检测工具,如valgr...
2019-11-11 21:16:45 1016
原创 Linux安装C++手册,就是这么简单
前言在Linux编写或者编译C代码的时候,直接使用man命令就可以查看该函数的使用手册,非常方便,如:man3sleep但是一般却没有C++的函数手册,怎么把C++的帮助手册也装在机器上呢?本文借助C++手册的安装,说明如何自助安装man手册。man原理如果你还不习惯使用man命令或者不清楚man命令的作用,那么建议你先看看这篇《linux必学命令-ma...
2019-11-08 09:26:55 1271
原创 超棒离线手册-每个开发者的福音
前言昨天在分享如何安装man手册时候,有读者留言提到了zeal,特意去体验了一下,感觉还不错,也分享给大家。在这里再次感谢读者【0x27】。zeal不知道你是否曾经想过,如果有一个工具,类似于软件管理工具,我要什么文档下载什么文档,然后就可以使用了,那该多好,就不用到处找文档了。zeal是一款属于开发者的离线文档工具,解决了你多个文档来回下载,翻看的烦恼。我找到了它的官网:...
2019-11-08 09:25:03 655
原创 拥抱智能指针,告别内存泄露
前言我们都知道,当申请的内存在不用时忘记释放,导致内存泄漏。长期来看,内存泄漏的危害是巨大的,它导致可用内存越来越少,甚至拖慢系统,最终进程可能被OOM(out of memory)机制杀死。C与C++中的内存泄漏在C语言中,我们用malloc申请内存,free释放内存;在C++中,也可以使用它们,不过对于自定义类型,常常会使用new申请,delete来释放。它们都有同样的问题,...
2019-11-07 21:39:02 2820 2
原创 linux自助安装man手册,就是这么简单!
前言在Linux编写或者编译C代码的时候,直接使用man命令就可以查看该函数的使用手册,非常方便,如:man3sleep但是一般却没有C++的函数手册,怎么把C++的帮助手册也装在机器上呢?本文借助C++手册的安装,说明如何自助安装man手册。man原理如果你还不习惯使用man命令或者不清楚man命令的作用,那么建议你先看看这篇《linux必学命令-m...
2019-11-05 22:16:30 2268
原创 C++和C中的const关键字有何区别?
前言在《const关键字到底该怎么用》一文中介绍了C语言中的const关键字,本文说说C++中的const关键字,它的大部分特点和C语言中的类似,所以本文主要针对不同之处。修饰普通变量--只读在C语言,虽然表面是不允许被修改,但是看下面的代码:#include<stdio.h>intmain(void){constinta=10...
2019-11-02 08:53:32 480
原创 有了它,再也不怕C中的复杂声明了
前言随着学习的深入,你可能慢慢地接触到越来越多的复杂声明,而这里有一个网站,帮你识别复杂的声明。试一试你知道下面的声明是什么意思吗?void(*signal(int,void(*)(int)))(int);没关系,访问https://cdecl.org/输入上面的内容就可以知道了:我们就得到了这个声明的含义:declare signal as fu...
2019-11-01 12:33:40 341
原创 几道C/C++小题,看看你会不会?
构造函数下面使用无参构造函数声明变量的方式对吗?为什么?应该如何修改?Testtest();答案参考《认真理一理C++的构造函数》。数组和指针下面代码的输出结果是什么?//实际中千万不要这么写#include<stdio.h>intmain(void){inta[5]={1,2,3,4,5};int...
2019-11-01 12:32:13 407
原创 向别人请教问题,不要这样开头
前言我们经常会有请教别人问题的时候,而下面这几种是不太建议的提问开头 在吗? 能问你一个问题吗? 有谁知道xxx吗? 当然你向我提问的时候,也不用称呼为大佬或者大神之类的,我就是一个普通的开发者。为什么毋庸置疑,你提问的目的自然是想得到解答,而上面三种提问方式都有一个共性,就是在看到上面的问题之后,仍然不知道具体问题是什么,而要简单回复之后才能得到真...
2019-11-01 12:30:51 6607
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人