C++面试笔记--const、sizeof】的更多相关文章

首先来一个关于const的全面的解释,先看一波代码,之后再进行详细的分情况解释 ; const int *a=&b;//指向一个int常量的指针 int const *a=&b;//和上面类似 int * const a=&b;//一个常量的指针a指向一个地址 const int * const a=&b;//一个常量指针指向一个常量 情况①:第一个和第二个的情况是一样的.他们都是定义了一个指针a指向一个变量b的地址,之后a的指向是可以改变的,但是他指向的东西是一个常量情况…
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 面试是每一个PHP初学者到PHP程序员必不可少的一步,冷月将为大家对PHP基础知识:JS.JQuery.AJAX:Linux:MySQL:程序设计题:PHP框架:算法.逻辑思维:高并发解决方案等做一个全方位的解析. 回顾真题 PHP中字符串可以使用哪三种定义方式以及各自的区别是什么? 答案: 单引号 双引号 heredoc()和newdoc() 先来看看…
最近在复习面试相关的知识点,然后做笔记,后期(大概在2018.02.01)会分享给大家,尽自己最大的努力做到最好,还希望到时候大家能给予建议和补充 ----------------2018.03.05------------------- 原本说好的2月份写出,但是因为知识点太多,就跳票了.... ----------------2018.04.03------------------- 今天终于有时间来整理这些笔记,然后将他们整理分类分成几个不同的模块,这样大家看起来也更方便些,以后会慢慢来完…
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而函数相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中函数相关的注意点. 回顾真题 <?php /** * Created by 冷月小白. * 微信公众号: 学长冷月 */ $count = 5; function get_count() { static $count; re…
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而运算符相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中运算符相关的注意点. 回顾真题 abc()和@abc()之间的区别. 答案:PHP 支持一个错误控制运算符:@.当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉.使用方法如下: <?php /*…
最近收到一位粉丝的回馈! 这位粉丝已经成功入职阿里了小编很是羡慕啊! 今天就把这份30w字Java面试笔记给大家分享出来,说来也巧这份资料也是由一位阿里技术官整理出来的这算不算是"搬起石头砸自己的脚呢"哈哈! Java面试笔记 这份资料的内容非常全面而且细致入微,有Java入门,基础,字符串,进阶,项目,虚拟机,数据库,微服务,算法,并发,线程,集合,Linux,面试题等等Java相关技术点,希望你能凭借这份资料剑指offer! 内容总览: Java基础篇(45道面试题) 字符串&am…
这些东西有点烦,有点无聊.如果要去C++面试就看看吧.几年前网上搜索的.刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善. 1.求下面函数的返回值( 微软) int func(x)  {  int countx =0;  while(x)  {  countx ++;  x = x&(x-1);  }  return countx;  } 假定x = 9999. 答案:8 思路:将x转化为2进制,看含有的1的个数. 2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引…
面试一:指针与引用的区别? 答案: (1)非空区别.在任何情况下都不能使用指向空值的引用.因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量.相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就可以把变量声明为引用.不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针要高. (2)合法性区别.在使用引用之前不需要测试它的合法性.相反,指针则应该总是被测试,防止其为空. (3)可修改…
1.面试宝典预处理,const,sizeof Define作用定义函数: //用一个宏定义FIND求一个结构体struc里某个变量相对于struc的偏移量,如FIND(student,a)//等于0 FIND(student,b)//等于4 #include<stdio.h> #define FIND(strucrr,e) (unsigned int)&(((strucrr *)0)->e) struct student { double ccc; int a; char b;…
前景提要: 最近大家都在面试,讨论最多.最基础的问题,莫过于“关于const和readonly常见的笔试题剖析”,等等的大牛解析.我就是一个小菜,只不过,有点不敢苟同大牛的意见.废话少说,进入重点. 小斗大牛: 关于const和readonly常见的笔试题剖析(http://www.cnblogs.com/wolf-sun/p/3599209.html) 上个帖子有牛回我,有些偏激,可能有点吧,但是我不想看到所谓大牛,误人子弟,而且还说的糊里糊涂! 我只是一只小菜鸟!带着怀疑的精神,来探究问题!…
20. 浅拷贝与深拷贝 如何理解C++中的浅拷贝与深拷贝 深拷贝和浅拷贝 在进行对象拷贝时,当对象包含对其他资源的引用,如果需要拷贝这个独享所引用的对象,那就是深拷贝,否则就是浅拷贝 *** 21.构造函数和析构函数的调用顺序? 继承时需要注意的问题 构造函数是自上而下调用,析构函数是自下而上调用 顺序 #include<iostream> using namespace std; class Base{ public: Base(){cout<<"创建Base基类.&q…
11 explicit 显式构造函数 explicit修饰的构造函数可用来防止隐式转换 class Test1 { public: Test1(int n) // 普通构造函数 { num=n; } private: int num; }; class Test2 { public: explicit Test2(int n) // explicit(显式)构造函数 { num=n; } private: int num; }; int main() { Test1 t1=12; // 隐式调用…
1. C和C++的区别 C++面向对象的三大特性 面向对象的三个基本特征:封装.继承.多态 1.封装:把客观事物封装成抽象的类,类进行信息隐藏 关键字 |当前类 |包内 |子孙类| 包外 --|--|--|--|-- public |√ |√ |√ |√ protected| √| √| √| × friendly| √| √| ×| × private| √| ×| ×| × 2.继承:使用现有类的所有功能,并在无需编写原来的类的情况下对这些功能进行扩展 分为父类和子类 继承的过程,就是一般到…
基本上求职者进行笔试没有不考字符串的.字符串也是一种相对简单的数据结构,容易被考.事实上,字符创也是一个考验程序猿编程规范和编程习惯的重要考点. 1.替换空格:实现一个函数,把字符串中的每个空格替换成“%20”.例如输入“we are happy.”则输出“we%20are%20happy.”     答案:用一个空的字符串去替换%,2,0三个字符,那么原字符就会变长从而覆盖掉后面的字符,我么可以考虑创建一个新的字符串并在新的字符串上面做替换,那样就能够分配足够的内存了.在这里我们可以考虑从后往…
树 树的题目基本都是二叉树,但是面试官还没有说是不是二叉树的时候千万不要先把答案说出来,要是面试官说是多叉树,而你做的是二叉树就直接挂了! 一. 树的三种遍历.前序.中序.后序,如果直接考遍历,就肯定是让你写非递归代码的(递归版太弱智了),具体写法,要不你记下来,要不参考“递归”部分的,怎么递归转非递归,另一个就是给个中序+前序(后序),让你还原二叉树,中序必须给,不然还原不了(解不唯一),一般递归解决: 二.  BST(Binary Search Tree).这个考法多一点,怎么判断是不是BS…
之前已经学会了单链表的建立删除插入转置以及一些普通操作,双链表和单链表差不多,就是多了一个前驱指针,在许多操作中很方便,但是加了一个指针开销应该会大一些,总体上影响不大,这里开始讨论循环链表以及其他的一些数据结构. 1.已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌周围,从编号为k的人开始报数,数到m的那个人出列,他的下一个人又从k开始报数,数到m的那个人出列,依次重复下去,直到圆桌的人全部出列.试用C++编写实现. 解析:本题就是约瑟夫环问题的实际场景,要通过输入n.m.k三…
整个C++程序设计全面围绕面向对象的方式进行.类的继承特性是C++的一个非常重要的机制.继承特性可以使一个新类获得其父类的操作和数据结构,程序员只需在新类中增加原有类没有的成分. 在面试过程中,各大企业会考量你对虚函数.纯虚函数.私有继承.多重继承等知识点的掌握程度,因此就有了我们这一节的内容,开始吧. 1.以下代码的输出结果是什么? #include<iostream> using namespace std; class A { protected: int m_data; public:…
新声明方式:const 1.不属于顶层对象 window 2.不允许重复声明 3.不存在变量提升 4.暂时性死区 5.块级作用域   以上特性跟let声明一样,特性可看 let 的学习笔记:链接跳转   ES5里面定义常量: Object.defineProperty(window, "PI", { value: 3.14, writable: false, }); console.log(PI); PI = 5; console.log(PI); const定义常量: const a…
一. sizeof计算结构体 注:本机机器字长为64位 1.最普通的类和普通的继承 #include<iostream> using namespace std; class Parent{ public: void fun(){ cout<<"Parent fun"<<endl; } }; class Child : public Parent{ public: void fun(){ cout<<"Child fun&quo…
原文:http://blog.sina.com.cn/s/blog_7c983ca60100yfdv.html#SinaEditor_Temp_FontName (1)      sizeof是操作符,不是函数. MSDN:The sizeof keyword gives the amount of storage, in bytes, associate with a variable or a type(including aggregate types). This keyword ret…
第一轮IQ测试:都来面试程序了,相信IQ再怎么也坑不到哪里去吧.要问什么样的题,几页纸呐, 如:1.找出不同类:羚羊.斑马.鲨鱼 2.在()里添一字使2边都能组词:木()料 3.中间值?:1,2,4,8,(),32 ... 第二轮一问一答:描述简绘cocos2dx框架.游戏架构.cocos2dx切换场景时做了什么事.排序算法.设计模式.接入sdk做分享功能.做过什么游戏(做过什么游戏的什么功能)用到什么技术.....…
1.因为const对象一旦创建后其值就不能再改变,所以const对象必须初始化. 2.默认情况下const对象只在文件内有效,如果想在多个文件之间共享const对象,必须在变量的定义之前添加extern关键字. 3.允许为一个常量引用绑定非常量的对象,字面值,甚至是个一般表达式. double dval = 3.14; const int &ri = dval; // 实际上编译器做了如下操作 const int temp = dval; const int &ri = temp; 4.顶…
在32位的机器环境下,char.short.int.float.double这样的内置数据类型sizeof值的大小分别为1,2,4,4,8: C++标模板库(standard Template Library,STL)里面提供了10种通用的容器类.vector(向量)中的元素是按照插入的顺序排列的:deque(队列)中的元素是按照进队列的顺序排列的:list中的元素是无序的:map中的元素是采用了平衡二叉树进行排列的,是为了具有更高的查询效率: 在所有类说明中,内部定义的成员函数都是内联函数 符…
1.const声明一个只读的常量.一旦声明,常量的值就不能改变. 2.const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值. 3.const的作用域与let命令相同:只在声明所在的块级作用域内有效. 4.const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用. 5.const声明的常量,也与let一样不可重复声明. 6.对于复合类型的变量,变量名不指向数据,而是指向数据所在的地址.const命令只是保证变量名指向的地址不变…
以下为Windows下的32 位C++程序,请计算sizeof 的值void Func ( char str[100] ){sizeof( str ) = ?}void *p = malloc( 100 );sizeof ( p ) = ?解答:sizeof( str ) = 4sizeof ( p ) = 4剖析:Func ( char str[100] )函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针:在失去其内涵的同时,它还失去了其常量特性,可以作自增.自…
一.ES6 1.模块化 ES6通过export和import实现模块化 ES6的模块化的基本规则或特点, 欢迎补充: 1:每一个模块只加载一次, 每一个JS只执行一次, 如果下次再去加载同目录下同文件,直接从内存中读取. 一个模块就是一个单例,或者说就是一个对象: 2:每一个模块内声明的变量都是局部变量, 不会污染全局作用域: 3:模块内部的变量或者函数可以通过export导出: 4:一个模块可以导入别的模块 例子: // util1.js export default{ a: // expor…
const 1.使用const来定义常量 const int num = 10; //应该在声明时进行初始化,否则该常量的值是不确定的,而且无法修改 2.const与指针 指向常量的指针(const修饰的是指针指向的内容) //指向常量的指针 double rates[5] = {88.9, 100.12, 59.2, 111.1, 23.2}; const double *pd = rates; cout << pd[2] << "\n"; pd[2] = 6…
在c语言的编程过程中经常会遇到有常数参加运算的运算,比如这种. int a=100*b; 这个100我们叫常数或者叫常量,但是程序中我们不推荐这种直接写常数的方法,有两个缺点. 第一是程序可读性差. a=100*b 直接给我这个代码,我自己都不知道是什么意思,100代表什么意思呢?别人可能根本就都不懂你的代码. 第二是可维护性差,如果要讲100改成200,一个还好,试想如果程序中有10个类似的例子,是不是得修改10次. 为了解决这个问题,我们引入了const这个关键字,只要在一个变量前面加上co…
1.编程实现单链表删除节点.       解析:如果删除的是头节点,如下图: 则把head指针指向头节点的下一个节点.同时free p1,如下图所示: 如果删除的是中间节点,如下图所示: 则用p2的next指向p1的next同时,free p1 ,如下图所示: 2.编写程序实现单链表的插入.       解析:单链表的插入,如下图所示: 如果插入在头结点以前,则p0的next指向p1,头节点指向p0,如下图所示: 如果插入中间节点,如下图所示: 则先让p2的next指向p0,再让p0指向p1,如…
说到面向对象,大家第一反应应该就是它的三大特性:封装性.继承性和多态性.那么我们先简单的了解一下这三大特性: (1)封装性:封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 在C++中类中成员的属性有:public, protected, private,这三个属性的访问权限依次降低. (2)继承性:继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. (3)多态性:多态性(po…