![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
C/C++ farer
这个作者很懒,什么都没留下…
展开
-
编程语言C/C++(一)
编程语言C/C++的一些基本概念(一)(1)简述变量声明和定义的区别。为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义(2)正确认识sizeof:**在32位机器中,如下代码:答案为4,23void example(char acWelcome[]){...原创 2019-03-06 17:46:45 · 13693 阅读 · 4 评论 -
编程语言C/C++(四)
1. 堆和栈的区别?- 申请方式不同。 - 栈由系统自动分配。 - 堆由程序员手动分配。- 申请大小限制不同。 - 栈顶和栈底是之前预设好的,大小固定,可以通过ulimit -a 查看,由ulimit -s修改。 - 堆向高地址扩展,是不连续的内存区域,大小可以灵活调整。- 申请效率不同。 - 栈由系统分配,速度快,不会有碎片。...原创 2019-03-23 15:12:11 · 9773 阅读 · 0 评论 -
题目摘录-编程语言(C++)(四)
Q 31 :题目: 分析一下这段程序的输出: #include<iostream> using namespace std; class B{ public: B(){ cout << "default constructor" << " "; } ...原创 2019-03-23 15:25:23 · 1100 阅读 · 0 评论 -
编程语言C/C++(五)
1. 关于友元- 有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的。例如被重载的操作符,如输入或输出操作符,经常需要访问类的私有数据成员。友元(frend)机制允许一个类将对其非公有成员的访问权授予指定的函数或者类,友元的声明以friend开始,它只能出现在类定义的内部,友元声明可以出现在类中的任何地方:友元不是授予友元关系的那个类的成员,...原创 2019-03-26 18:21:35 · 9377 阅读 · 1 评论 -
函数那些事
六、函数那些事函数是C++/C 程序的基本功能单元,当然是笔试面试重点考察内容。函数接口的两个要素是参数和返回值。C 语言中,函数的参数和返回值的传递方式有两种:值传递(pass by value)和指针传递(pass by pointer)。C++语言中多了引用传递(passby reference)。函数的设计必须兼顾功能正确和细节合理。这里对函数的接口设计和内部实现提供了一些参考的规则,同...转载 2019-03-24 11:15:21 · 199 阅读 · 0 评论 -
内存管理那些事
七、内存管理在写C/C++程序的时候,最头疼的部分一定包括内存管理,一提到内存管理总是提心吊胆,但是又不可避免地常常会遇到,而这块的知识也是公司招聘的一个评价方面,能够很好地体现笔试面试者的功底。这部分的内容稍深一些,大家细心阅读,能对内存管理有一个比较好的把握。7.1 内存分配的方式最长被问到的问题之一,基础中的基础。对C和C++而言,内存分配方式有三种:1)从静态存储区域分配。例如程序...转载 2019-03-27 17:23:01 · 333 阅读 · 1 评论 -
编程语言C/C++(六)—— STL(一)
标准模板库C++ STL 的实现:序列式容器(元素的位置与插入的时机、地点有关)(线性结构)1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问。deque是一个双端队...原创 2019-04-01 18:57:04 · 1604 阅读 · 0 评论 -
数据结构(一)——常用的排序算法
排序算法冒泡排序复杂度 n^2排序规则冒泡排序算法的运作如下:(从后往前)1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3. 针对所有的元素重复以上的步骤,除了最后一个。4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。...原创 2019-04-13 14:22:58 · 533 阅读 · 0 评论 -
C++函数的高级特征
C++函数的高级特征重载(overloaded)、内联(inline)、const 和virtual是C++独有而C不具有的四种机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const 与virtual机制仅用于类的成员函数。重载和内联是一把双刃剑,用的好可以提高效率,精简程序;而一味滥用也会影响程序的效果。这里根据笔试面试中常碰到的问题,探究一下重载和内联的优点与局限性,说明应...转载 2019-04-13 14:45:48 · 313 阅读 · 0 评论 -
关于错误:reference to non-static member function must be called
问题:今天刷牛客这道题的时候:题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。这是我的代码:class Solution {public: bool bijiao(int a, int b) { string sb =...转载 2019-04-13 17:02:00 · 7777 阅读 · 1 评论 -
编程语言C/C++(七)—— STL(二)
set实现原理:set 的特性是,所有元素都会根据元素的键值自动被排序。set 的元素不像 map 那样可以同时拥有实值(value)和键值(key),set 元素的键值就是实值,实值就是键值,set不允许两个元素有相同的值。set 底层是通过红黑树(RB-tree)来实现的,由于红黑树是一种平衡二叉搜索树,自动排序的效果很不错,所以标准的 STL 的 set 即以 RB-Tree 为底层机...原创 2019-04-16 19:04:36 · 596 阅读 · 0 评论 -
操作系统(一) —— 进程线程模型
进程线程模型线程是调度的基本单位,进程是资源分配的基本单位多线程模型1. 线程创建和结束背景知识:在一个文件内的多个函数通常都是按照main函数中出现的顺序来执行,但是在分时系统下,我们可以让每个函数都作为一个逻辑流并发执行,最简单的方式就是采用多线程策略。在main函数中调用多线程接口创建线程,每个线程对应特定的函数(操作),这样就可以不按照main函数中各个函数出现的顺序来...原创 2019-03-30 14:01:03 · 1009 阅读 · 0 评论 -
一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。方法一:最通用的,利用一个ArrayList来存储所有数组元素,遍历一次,不重复的就添加进去,重复的就去掉该元素即可public class Solution {public void FindNumsAppearOnce(int [] array,int num1[] , int num...转载 2019-03-08 13:30:48 · 706 阅读 · 0 评论 -
百度三面面经(C/C++工程师)
作者:thereisnoend链接:https://www.nowcoder.com/discuss/136247来源:牛客网从牛客网获得过很多帮助,因此回馈一波~以下题目尽可能回忆,顺序不一定对。一面new/delete和malloc/free的区别vector的结构?vector拷贝时发生什么一个数组,只有一个数字出现奇数次,其余数字出现偶数次,如何得到这个数字?如果出现奇数次...转载 2019-03-08 13:13:16 · 1406 阅读 · 0 评论 -
腾讯面经(C/C++后台)
T1作者:木舟遥链接:https://www.nowcoder.com/discuss/159765?type=2来源:牛客网人生中第一次找工作面试,本人大三。中午点了外卖不久,来自广东深圳的电话突然打来,我还以为是送外卖的,结果是腾讯面试官,问我现在方便不,我寻思着。。。马上送外卖的给我打电话怎么办?就支支吾吾了一会儿,问他下午有时间没,他说可能没时间,我说那就现在吧(事后真想扇自己两...转载 2019-03-09 17:46:46 · 1889 阅读 · 0 评论 -
题目摘录-编程语言(C++)(三)
Q 21 :题目: i的初始值为0,i++在两个线程里面分别执行100次,能得到最大值是(),最小值是()。答案: 200 2解答: 考察多线程操作同一未上锁变量。 1. 每次都准确加1,结果为最大,200。 2. 结果为2时步骤: a取内存0到寄存器,b取内存0到寄存器; a执行99次并写入内存,内存值为9...原创 2019-03-09 17:50:43 · 1944 阅读 · 0 评论 -
编程语言C/C++(二)
编程语言C/C++的一些基本概念(二)(1)关于Linux下的输入/输出重定向:在Linux中,每个打开的文件被赋予一个文件描述符(file descriptor),包括标准输入(stdin),标准输出(stdout)和标准错误输出(stderr),由0,1,2分别描述。command &> file 表示将标准输出(stdout)和标准错误输出(stderr)重定向至指定的文...原创 2019-03-07 11:54:39 · 8226 阅读 · 0 评论 -
C,C++基础和编程风格(1)
找工作笔试面试那些事儿(1)—C,C++基础和编程风格(1)前言眼看着又要到一年一度的找工作季了,遥想去年这会儿,学校同学们也都是一副要上战场似得枕戈待旦整装待发的情景。想来自己当时笔试面试也确实参加了不少,无奈技术和智商平平,最后结果一般,但也确实经历了不少,外加一直有总结和整理资料的小习惯,手头上确实攒下了一些笔试面试的资源。又最近频繁有师弟师妹问我要相关的资料,想来还不如自己整理整理发到...转载 2019-03-07 12:40:47 · 733 阅读 · 0 评论 -
编程语言C/C++(三)
1. 结构体内存对齐问题?- 按序存储,装得下尽量装,装不下换一行。- 如果最大的基本元素小于等于机器位宽,按照最大基本元素大小对齐,否则按照机器字长对齐。2. static作用是什么?在C和C++中有何区别?- static可以修饰局部变量(静态局部变量)、全局变量(静态全局变量)和函数,被修饰的变量存储位置在静态区。对于静态局部变量,相对于一般局部变量其生命周期长,直到程序运行结...原创 2019-03-10 15:24:54 · 3109 阅读 · 0 评论 -
C,C++基础和编程风格(2)
四、表达式和基本语句4.1 运算符与复合表达式首先非常重要的一个点是C/C++运算符的优先级问题,下图为总结的一张表,结合律特殊的运算符已经用黑体加粗标明出来了。说实话,上表中的运算符优先级和结合律要熟记是非常困难的。虽说有表在,但是也不能每次都查表,所以我们在写程序的时候尽量要遵循后续规则:如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。 ...转载 2019-03-11 13:06:16 · 802 阅读 · 0 评论 -
C++ STL容器底层实现原理
1、vector 容器vector 的数据安排以及操作方式,与 array 非常相似。两者的唯一区别在于空间的运用的灵活性。array 是静态空间,一旦配置了就不能改变,vector 是动态数组。在堆上分配空间。vector 是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素(有保留内存,如果减少大小后内存也不会释放。如果新值>当前大小时才会再分配内存,这大大影响了 vec...转载 2019-03-16 00:13:39 · 10591 阅读 · 2 评论 -
C++ 智能指针
C++ 智能指针这里介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr([wiːk]), unique_ptr([juː’niːk]) 其中后三个是c++11支持,并且第一个已经被c++11弃用。为什么要使用智能指针:我们知道c++的内存管理是让很多人头疼的事,当我们写一个new语句时,一般就会立即把delete语句直接也写了,但是我们不能避免程...原创 2019-03-17 00:07:01 · 440 阅读 · 0 评论 -
题目摘录-编程语言(C++)(一)
题目摘录-编程语言(C++)(一)Question 1 :题目: 以下代码: class ClassA{ public: virtual ~ClassA(){}; virtual void FunctionA(){}; }; class ClassB{ public: virtual void Fu...原创 2019-03-08 12:55:36 · 3994 阅读 · 0 评论 -
题目摘录-编程语言(C++)(二)
题目摘录-编程语言(C++)(二)Question 11 :题目: 某32位系统下, C++程序,请计算sizeof 的值: char str[] = "http://www.xxxxx.com"; char *p = str; int n = 10; sizeof(str) = (1); sizeof(p) = (2; sizeof(n...原创 2019-03-08 13:01:09 · 2539 阅读 · 0 评论 -
epoll内核源码详解
网上很多博客说epoll使用了共享内存,这个是完全错误的 ,可以阅读源码,会发现完全没有使用共享内存的任何api,而是 使用了copy_from_user跟__put_user进行内核跟用户虚拟空间数据交互./* * fs/eventpoll.c (Efficient event retrieval implementation) * Copyright (C) 2001,...,200...转载 2019-05-11 16:29:17 · 265 阅读 · 0 评论