自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小白的逆袭

这是我的讨论群,进群讨论问题免费领取C/C++资料:934806121

  • 博客(200)

原创 求1!+2!+3!+...+20!的和

题目:求1!+2!+3!+...+20!的和阶乘定义:n! = 1 * 2 * 3 * … * n难度简单参考答案核心是阶乘的计算。20!的阶乘的位数的估算非常重要,导致在定义阶乘函数的时候返回值采用的整型宽度需要仔细思量。#include <stdio.h>/*题目: 求和 1!+2!+ ... + 20!*/long long factorial(int n){ long long f = 1; for (int i = 1; i <

2020-07-02 16:46:36 179

原创 周一划水必备:程序员专属GIF动图批发

这才刚周一,漫长的搬砖周正式开始,压力再大,也不要忘了给自己增加点欢乐,先划个水热身一下嘛。经过n轮面试,终于进入了大厂入职新公司第一周的感受小公司搞中台互联网寒冬,出去面试了一圈之后...前公司上市了,我好想回去啊程序员读别人写的代码的时候饭一点点吃,技术一点点学,你着啥急计算机专业毕业生,准备找工作了程序员改bug,改错了地方正在...

2020-07-02 10:22:42 168

原创 飞机一般是什么操作系统?

之前波音737MAX空难失事事件牵动人心,让人对航空出行又平添了一份不信任,根据最新消息显示,美国联邦航空局对737 MAX机型的大量评估授权给波音公司自身进行,安全评估存在严重缺陷。也传出了波音737 MAX客机的培训都是通过平板电脑软件进行这样让人毛骨悚然的内幕。最终的结果出来之前我们很好奇,也恰巧在V2EX 看到了有人发问:飞机上用的是什么操作系统?根据 V友转自百度知道的答案:航空软件并不神秘,从计算机架构上来说,同普通的计算机系统并无太大区别,都是由处理器,总线,I/O设备..

2020-06-28 10:19:18 262

原创 自学编程之前,你需要知道这些

你是否适合自学编程自学编程会是一个漫长而艰辛的过程,在你信心满满地准备开始之前,不妨先问问自己下面这几个问题,来判断你是否真的适合自学编程呢?你是一个逻辑和抽象思维能力比较强的人吗? 你是否愿意不断地去学习那些新的东西,而在大多数时间内你都需要去自学。 当你遇到一些问题和困难的时候,你是否有足够的耐心和毅力去独自解决这些问题? 你是否有很强的好奇心去研究和探索那些未知的领域?如果上面这四个问题中,至少有两到三个你的答案是Yes的话,那相信你是适合自学编程的,相反,你可能需要考虑选择更适合自己

2020-06-09 10:34:54 310

原创 三天的时间,如何学会C++,原来只要四个步骤

刚刚开始学编程,有什么办法可以快速掌握一门语言?还真有!而且只需要3天的时间,就可以精通C++!你需要完成这几步:和你的朋友立个flag:我要3天学会C++,赌一辆玛莎拉蒂!花上10年的功夫,精通C++;研究生物化学、分子生物学、遗传学,利用这些知识,研制出返老还童药水;回到在第3天学习C++的时候,并干掉那一天的你,并替代它;这时候,你不仅学会了C++,而且还赢得了一辆马萨拉蒂。这是一个套路这是一个套路性标题,这种标题的套路是:一个让人不可思议的,极短的时间,学会.

2020-06-06 15:35:22 205

原创 SpaceX十年磨一剑

文章目录剑客马斯克低潮2018高光2020第一代龙飞船第二代龙飞船目标:星辰大海复用/敏捷:用写代码的方式造火箭与飞船代码级的复用模块级的复用项目级的复用可重复使用的火箭/飞船敏捷开发一枚火箭/飞船SpaceX 里的软件SpaceX 软件工程师团队在干什么SpaceX 软件工程师的目标SpaceX 软件工程师的技术栈SpaceX 有 4 个独立的软件团队飞行软件团队干什么航电测试团队干什么飞行软件和航电测试团队的技术栈龙飞船和猎鹰9号用的是 Linux主力编程语言C++SpaceX 工程师的推荐学习路径入门

2020-06-04 15:55:58 303

原创 零基础学C++进腾讯,这份GitHub热榜的「从入门到高薪」请你收下

零基础想学C++进大厂?这件事其实没那么难。一位国内在读研究生的C++学习指南本月初登上了Github热榜,目前已经收割2000星。避免啃书、注重实战、效率与节奏并重,这位研一才接触C++的同学已经拿到了鹅厂后台开发的offer。除了教程,还有各大厂面试试题总结,面试经验传授,以及内推、招聘情报等珍贵资料。无论你是编程入门还是求职面试,这份指南不容错过。最完整的C++入门进阶资料库作者「光城」研一才开始学习C++,在Github上建立「C++那些事」只是作为自己的学习笔记。但

2020-06-04 11:12:36 148

原创 学完了C++语法之后该学什么??(数据结构与算法篇)

数据结构与算法数据结构与算法,我就不想多说了,重要性不用说。应届生秋招和春招最大的优势估计就是数据结构与算法的掌握了。上面三门课程的学习,基本也都是离不开数据结构的,对于如何学习数据结构与算法,我觉得可以在写一篇文章了,所以数据结构与算法的学习,我这里不写了。论面试,我觉得操作系统+计算机网络+数据库 + 数据结构算法这四大块是问的最多的,所以我写的非常详细。这几篇文章可以在我主业主页里查看。总结暂时先介绍这么多吧,说实话,学了这些,不单单是多学了一门知识,更重要的是可以提升你的罗辑思...

2020-06-03 11:01:33 209

原创 学完了C++语法之后该学什么??(数据库篇)

数据库与中间件主要是MySQL、MongDB、Redis、Nginx等;在大学的课程里,一般都会开设一门数据库的课程,不过这门数据库是没有针对某一种数据库语言的(例如 MySQL、SQlite)。不过我这里只讲 MySQL,因为最频繁。数据库不在多。把MySQL学好,还是特别重要的,千万不能停留在会用的层面上,而是应该要了解一下原理,特别是对于要面试的同学,会问挺多原理,不一定要写得很号,但是需要知道一些原理,像腾讯、阿里面试时,面得最多的就是MySQL。下面就说说一些知识以及推荐的学习资料吧。

2020-06-01 11:44:37 180

原创 学完了C++语法之后该学什么??(操作系统篇)

操作系统操作系统也是一门非常重要的知识,在面试中也是问的非常多。对于操作系统,要学的也太多太多了,例如:啥是进程,啥是线程,他们的本质区别?我们运行一个程序时,数据放在哪里?代码放在哪里?咋就还要分堆和栈?线程切换时是上下文是啥意思?虚拟地址是什么鬼东西?线程需要那么多种状态干啥子?什么是乐观锁、悲观锁?死锁是怎么造成的?解决死锁的策略有哪些?等等对于操作系统,我总结了下面一些比较核心,面试相对容易被考到的。1、进程的通信方式2、进程地址空间分段3、...

2020-05-28 11:24:28 106

原创 学完了C++语法之后该学什么??(网络基础篇)

在学完了C/C++语法之后,我相信很多朋友都会比较迷茫,到底应该学什么?其实总结起来无非就是:1、网络编程;2、操作系统;3、数据库;4、数据结构与基础算法;掌握这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,可以帮助我们更快着学习一门知识,更加懂得计算机的运行机制。当然,在面试中也经常会被问到,特别是对于应届生,也有朋友经常问的计算机基础知识究竟是指啥?学习顺序?推荐书籍?一、网络编程在我们用的程序中

2020-05-26 17:34:16 231

原创 C/C++堆栈指引

前言 我们经常会讨论这样的问题:什么时候数据存储在堆栈(Stack)中,什么时候数据存储在堆(Heap)中。我们知道,局部变量是存储在堆栈中的;debug时,查看堆栈可以知道函数的调用顺序;函数调用时传递参数,事实上是把参数压入堆栈,听起来,堆栈象一个大杂烩。那么,堆栈(Stack)到底是如何工作的呢? 本文将详解C/C++堆栈的工作机制。阅读时请注意以下几点: 1)本文讨论的编译环境是 Visual C/C++,由于高级语言的堆栈工作机制大致相同,因此对其他编译环境或高级语言如C#也有...

2020-05-26 11:35:56 125

原创 c++病毒之bingo撩妹记(初级桌面移动)

马上要五一放假了,Bingo灵机一动,想起上周和MQ一起认识的时候,决定写一个c++小病毒,逗她开心一下……病毒肯定要改个名字,哈哈哈哈!!!!不废话,先贴代码:工程名:当然要先改个名字啦:不然不可能会点开的!!!效果大概就是这样子:什么???难道她不知道启动任务管理器吗?哼哼哼哼...

2020-05-25 14:12:41 121

原创 为什么说C++太复杂?复杂的必要性是为什么?

1 常见观点可以轻易的找出许多文献说明C++太复杂了,例如学习C++的书籍的厚度。这样以至于C++的设计者Bjarne都曾怀疑具有类的C是不是已经太庞大了。因为,总有大量对语言的新特性的要求:对如何利用现有特性完成某些任务没有足够的了解 天生喜欢评价主流编程语言的人 许多使用者遇到了实际的问题,确实需要语言本身提供支持来解决这些问题(大部分)2 反驳观点但是C++只在被孤立看待的时候,才会觉得复杂性。设计任何一门语言都是有背景的。C++面向的是这样的特定用户:应对各种复杂问

2020-05-12 11:08:56 107

原创 如何写出一个惊艳面试官的深拷贝

最近经常看到很多 JavaScript手写代码的文章总结,里面提供了很多 JavaScriptApi的手写实现。里面的题目实现大多类似,而且说实话很多代码在我看来是非常简陋的,如果我作为面试官,看到这样的代码,在我心里是不会合格的,本篇文章我拿最简单的深拷贝来讲一讲。看本文之前先问自己三个问题: 你真的理解什么是深拷贝吗? 在面试官眼里,什么样的深拷贝才算合...

2019-09-17 18:00:14 202

原创 程序员:摸鱼式加班何时才能停止

前几天,《人民日报》官微上发表了一篇名为《被迫“摸鱼式加班” :“领导不走我不走”为何一再上演》的微博文章,引发热议。先来了解一下,什么是摸鱼式加班?这种现象在IT互联网公司里太普遍了,这是我公司每天上演的戏码。土哥之前刚入职一家公司,下班时间到了,竟没有一位员工起身下班。因为是新人,我也没好意思先走,手头没啥事干,就在工位上硬生生耗了20多分钟等老板走了,然后技术负责人走了,之后,我...

2019-08-31 22:26:46 587 1

原创 C++ 多态性原理与细节

目录多态的定义 编译时多态 运行时多态 虚函数的实现原理 虚函数表的作用机制实例分析什么是多态多态时C++作为面向对象(OOP)语言的三大特性之一(其他两大特性为:封装和继承)多态性简单概括为“一个接口,多种方法”。指的是相同的对象收到不同的消息或者是不同的对象收到相同的消息时能产生不同的动作。多态具有三个重要的组成部分:1.相同的函数名2.依赖于上下文3.具...

2019-08-31 22:24:20 92

原创 C++函数中,两个自动释放内存的动态内存申请类

最近做一个事情,实现一个流程交互,其中主交互流程函数中,涉及较多的内存申请,而健康的函数,都是在函数退出前将手动申请不再需要的内存释放掉,使用很多方法,都避免不了较多的出错分支时,一堆的if free/delete,代码长而且不好管理因此,利用C++对象离开作用域会自动调用析构函数的特点,在这儿实现了两个自动释放内存的动态内存申请类第一个类,只管理内存,不并管理对象#incl...

2019-08-31 22:23:28 265

原创 “我不会编程,还有机会进娱乐圈吗?”

现在被妖魔化最严重的两个职业群体是什么?甲方和程序员。如果一定要把这两者做一个结合,那就是产品经理。过去20年,中国互联网行业的高速发展,让相关的工程师、产品经理、运营等新岗位开始被大众所知晓。但尽管如此,普通人对这些岗位的具体工作内容依然了解不多。销售或设计人员跟你聊工作上的事情你没准还能接上话,但程序员一说起来就是“变量名”“Debug”“架构”,把工作界面摆在你面前你都完全看...

2019-08-31 22:20:46 275

原创 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

曾经有这么一道经典面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么?相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?要搞懂这个问题,我们需要先解决下面五个问题: 现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断...

2019-08-28 17:23:33 136

原创 Visual Studio Code 如何编写运行 C、C++ 程序?

0. 前言本文面向初学者,但是不适合还在学写Hello World级别的初学者。阅读本文能在一定程度上了解程序编译的知识,以及使用VS Code的知识。本文大部分内容都可从VS Code官方文档:C++ programming with Visual Studio Code以及各个扩展的文档中获得,并且他们还会进行更新(本文也进行过几次重大更新)。如果你想更深入了解,可以去看。其实本文基本...

2019-08-27 21:17:26 5470

原创 说说我见到和听说到的架构师升级步骤和平时的工作内容

1 先说下大家对架构师认识的误区 1 架构师不是不食人间烟火,不是只在一个人的隔间里设计架构,而是需要和产品方,需求方,程序员等各路人马打交道。 2 架构师偏重于技术,这个不假,但绝不能是技术完美主义者,因为任何产品或网站的架构都充满着妥协。 3 高级程序员和架构师的界限并不明显,不是哪天高级程序员学好了什么课程,掌握了一门技术就自动升级到架构了,有些要求不高的项目里...

2019-08-27 21:16:14 65

原创 C语言和C++哪个效率更高?老司机3句话告诉你答案

很多小伙伴都会有这样的疑问,C语言和C++执行效率上哪一个更高呢?针对这样的问题,今天我们就一起来看一下吧!1.开发效率当代码量比较小的时候,使用c语言可以很方便的就完成代码的开发和维护,但是当代码量达到一定数目以后,c++面向对象的思想的优势就很好的体现出来了,这种思想使代码重用更加高效。2.执行效率从语言特性角度上来看,C++是C的超集。在(C++) - C的这部分...

2019-08-27 21:14:27 673

原创 进程与线程的区别:最浅显易懂的解释

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个...

2019-08-27 21:10:36 197

原创 金九银十面试必问:C++工程师106道面试题总结(含答案详解)

金九银十即将到来,但很多人面试之前,可能没有在互联网公司工作过或者说工作过但年头较短,不知道互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。下述是我收录整理的Android面试题汇总,由于篇幅原因,在这只把基础知识点部分的题目列举出来,后续还会更新其余面试题内容,大家可以关注一下我,及时知晓我的更新,同时这份面试集锦的...

2019-08-27 21:07:25 864 1

原创 Linux系统下运行c++程序

引言为什么要在Linux下写程序?首先要问一下自己,为什么要写这个程序。如果我们写一个运行在windows平台的应用程序,那么用Linux写肯定是傻瓜或者强迫症,因为在windows平台调试windows程序可以更容易发现并解决问题,反过来也一样,在Linux平台调试出来的程序可以更好的适应Linux平台的环境,如果在windows下写出一个程序,结果到了Linux的运行环境出了暗病,...

2019-08-21 16:52:23 373

原创 详细讲解Linux驱动程序

一 编写Linux驱动程序1.建立Linux驱动骨架 Linux内核在使用驱动时需要装载与卸载驱动装载驱动:建立设备文件、分配内存地址空间等;module_init 函数处理驱动初始化卸载驱动:删除设备文件、释放内存地址空间等;module_exit函数处理退出包含这两个函数的两个宏的C程序文件也可看做是Linux驱动的骨架2.注册和注销设备文件任何一个Linu...

2019-08-21 16:50:23 49

原创 献给初学者:谈谈如何学习Linux操作系统

一、 选择适合自己的linux发行版谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需要有一个明确的方向,选择一个适合自己的系统开始学习lin...

2019-08-21 16:49:34 79

原创 Linux 下的编程工具

主要包含如下内容:?GNUC、C++编译器?GNUmake工具?GNU的调试器?RCS版本控制系统并简单介绍了Linux系统上广为流行的Perl脚本语言。对比了Linux和WindowsNT两种不同的编码风格。在BBS上看有些困难,拿回家慢慢看吧。第十三章软件开发由于操作系统只是一个工具,对大多数读者...

2019-08-21 16:48:08 289

原创 做10年Windows程序员与做10年Linux程序员的区别

如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大。我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的感受,我最早开始学习编程也是在windows下面的, 学的是VB,后来转到VC...

2019-08-21 16:46:47 185

原创 Linux方向职业规划

引言:据了解,Linux普通网络管理人员的月薪大约5000元左右,负责编程的Linux软件工程师月薪大约在8000元到12000元之间,Linux嵌入式软件开发人员的月薪大约在12000元以上。影响Linux从业者的薪资水平的还有两个重要因素:一是从业时间长短,二是具体的工作岗位。针对376个工作岗位的薪资水平与其工作年限要求交叉分析结果,我们可以看出,从业者进入Linux行业的时间越长,薪...

2019-08-21 16:45:14 252

原创 linux下c++开发主要是做什么?

一、linux下的c/c++编程——入门级知识 1linux安装 首先安装linux操作系统,一般初学者还是在vm上安装linux学习比较好,操作系统选择ubuntu或者redhat比较合适(用的人多O(∩_∩)O)。 vm的安装比较简单,在此不多说。vm安装之后,建立workstation,注意分配好内存、硬盘,可以配置光驱,网络等(这时的workstation相当于一...

2019-08-21 16:44:11 1180

原创 解析Linux C/C++开发的难度到底在哪

经常被问到的问题,如何学习C++,如何学习Linux,如何开始?其实这个问题对于不同的人答案往往不尽相同,每个人所处的环境就不同。一个普遍的现象是有一些windows开发基础的人,他们想转Linux开发,那我就以这个点和大家讨论一下。相对于Linux下的C/C++开发,在windows下的初学者往往容易入门,原因是visualstudio,这个强大的工具隐藏了很多的细节,好多人甚...

2019-08-21 16:42:45 450

原创 1.Linux和Unix区别

有很多初学Linux的人比较关心Linux和windows的区别,这里还有一点就是Linux Unix的区别,弄清楚一些区别有助于我们对操作系统的了解.这里叙述Linux Unix的区别.   Linux和UNIX的最大的区别是,前者Linux是开发源代码的自由软件,而后者UNIX是对源代码实行知识产权保护的传统商业软件.这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对...

2019-08-21 16:41:05 164

原创 linux学习书籍推荐linux学习书籍推荐

网上看到的,做个标记。没研究过,仅供参考linux编程学习inux 学习书目推荐Linux基础1、《Linux与Unix Shell 编程指南》C语言基础1、《C Primer Plus,5th Edition》【美】Stephen Prata著2、《The C Programming Language, 2nd Edition》【美】Brian W. Kern...

2019-08-21 16:39:39 2488

原创 技术学到多厉害,才能顺利进入BAT?

简介本科的时候对 Linux 特别感兴趣,心中向往成为一名运维工程师,就开始没日没夜的看相关的书籍。到了大约2013年前后的时候发现 DevOps 开始流行起来了,就开始学习 Python 希望成为一名 DevOps 工程师,后来出去实习发现从事运维相关的工作并不是我的追求。苦于在合肥这样的城市真的很难找到一份专职做 DevOps 的地方(当时在科大讯飞的时候,做的就是纯运维的工作,该...

2019-08-16 17:12:23 186

原创 C++工程师常见的面试题总结

1.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?答:首先,extern是C/C++语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。extern "C"是连接申明(linkagedeclaration),...

2019-08-14 14:36:46 2786

原创 腾讯T3C++开发工程师面试总结,这些问题你能答上几个?含答案

腾讯C++第一轮面试题目:不会做别着急 ,文末有答案1、自我介绍(自由发挥)2、301和302的区别?3、红黑树是什么样的数据结构?红黑树和B数的区别?4、堆和栈的区别?5、谈一下对乐观锁和悲观锁的认识6、结构体struct和联合体union的区别7、三次握手的具体实现,time_wait原理?8、C和C++的特点与区别9、计算机网络中不同层有用到...

2019-08-14 14:27:04 724

原创 C++ vector 删除符合条件的元素

C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法。C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。1.std::vector::erase()  函数原型:iterator erase (iterator position);  //删除指定元素       iterator ...

2019-08-13 21:14:38 357

原创 C/C++ 语言获取文件大小

在C语言中测试文件的大小,主要使用二个标准函数。1.fseek  函数原型:int fseek ( FILE * stream, long int offset, int origin );  参数说明:stream,文件流指针;offest,偏移量;orgin,原(始位置。其中orgin的可选值有SEEK_SET(文件开始)、SEEK_CUR(文件指针当前位置)、SEEK_END(...

2019-08-13 21:09:34 326

空空如也

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除