C++面试考点
1.下面程序在x64下结果
struct st
{
int a;
long long b;
double c;
};
int main() {
st s;
cout << &s.a << endl;
cout << &s.b << endl;
cout << &s.c << endl;
cout << sizeof(s) << endl;
int* p = nullptr;
cout << sizeof(p) << endl;
system("pause");
return 0;
}
结果:
0000003DC3CAF658
0000003DC3CAF660
0000003DC3CAF668
24
8
知识点1.
结构体每个成员相对结构体首地址的偏移都是每个成员本身大小的整数倍。
知识点2.
x64下,指针为8位。
2.知识点
const int* p; p的内容可以变,*p不可以变。
int * const p; *p可以变,p不可以变。
3.下面程序的结果
int i=0,a=1,b=2,c=3;
i=++a||++b||++c;
printf("%d %d %d %d",i,a,b,c);
结果:1 2 2 3
知识点:
||前++a 返回true,所以不会再计算后面的表达式
4.一元运算符重载
class A
{
public:
A& operator++()
{
return *this;
}
A& operator++(int)
{
return *this;
}
};
int main() {
A a;
a++; //++(int)
++a; //++
system("pause");
return 0;
}
5.下面程序
class A
{
public:
void fun() const
{
delete this;
}
~A()
{
delete this;
}
};
void fun()
{
static int i = 10;
i++;
cout << i << endl;
}
int main() {
A *a = new A();
a->fun();
delete a;
system("pause");
return 0;
}
析构函数中会导致无限循环,堆栈溢出。fun按原理说不会出错,但vs下会出错。
6.多态分为静态和动态多态,静态多态也就是函数重载,包括函数重载和运算符重载
7.C++中的常量折叠:指const变量(即常量)值 放在编译器的符号表中 ,计算时编译器直接从表中取值,省去了访问内存的时间,从而达到了优化。
const int i = 0;
int *j = (int *)&i;
*j = 1;
printf("%d,%d", i, *j);
C++结果:0,1
8.数组指针和二级指针的区别
- 二级指针是指向指针的指针, 也就是说二级指针必须指向一个一级指针, 而这个一级指针存放的是一个内存地址。
- 一维数组可以看成是一级指针,但是二维数组却不能看成是二级指针。
就以a[2][3]举例:
a[2][3]其实就是两个维度为3的一维数组合并起来的二维数组, 也可以看成是一个一级数组指针 所以并不能用二级指针直接操作二维数组。 应该使用 数组指针int (*p)[3] = a;
C++面试考点的更多相关文章
- C#面试考点集锦
C#面试考点集锦 ©智客坊 岁末年初往往是程序猿准备跳槽的高峰,当然互联网行业跳槽几乎是每个月都在发生,没有太过明显的淡季~那么,如何提高面试的通过率,最终顺利的拿到自己心仪的offer呢? ...
- React16源码解读:开篇带你搞懂几个面试考点
引言 如今,主流的前端框架React,Vue和Angular在前端领域已成三足鼎立之势,基于前端技术栈的发展现状,大大小小的公司或多或少也会使用其中某一项或者多项技术栈,那么掌握并熟练使用其中至少一种 ...
- 【面试】Spring事务面试考点吐血整理(建议珍藏)
Spring和事务的关系 关系型数据库.某些消息队列等产品或中间件称为事务性资源,因为它们本身支持事务,也能够处理事务. Spring很显然不是事务性资源,但是它可以管理事务性资源,所以Spring和 ...
- Java岗 面试考点精讲(基础篇02期)
1. 两个对象的hashCode相同,则equals也一定为true,对吗? 不对,答案见下面的代码: @Override public int hashCode() { return 1; } 两个 ...
- Java岗 面试考点精讲(基础篇01期)
即将到来金三银四人才招聘的高峰期,渴望跳槽的朋友肯定跟我一样四处找以往的面试题,但又感觉找的又不完整,在这里我将把我所见到的题目做一总结,并尽力将答案术语化.标准化.预祝大家面试顺利. 术语会让你的面 ...
- java和数据结构的面试考点
目标:不要有主要的逻辑错误.2遍以内bug free.注意代码风格 不要让面试官觉得不懂规矩 Java vs C++ Abstract class vs interface pass by refe ...
- java应届生面试考点收集
回 到 顶 部 这些知识点来自于之前去百度实习.阿里.蘑菇街校园招聘的电话面试 未完待续 JavaSE 面向对象 封装.继承.多态(包括重载.重写) 常见区别 String.StringBuffer. ...
- java面试考点-面试准备
面试前准备 了解应试公司相关信息及岗位信息 系统复习基础知识 对原公司负责项目进行梳理 阅读常规框架源码 学习典型架构案例 针对招聘文案准备加分项 相关技能 基础知识:进程/线程,TCP协议,HTTP ...
- 25、前端知识点--webpack篇之面试考点
前端面试之webpack篇 https://blog.csdn.net/sinat_17775997/article/details/78122999 关于webpack的面试题 随着现代前端开发的复 ...
- java设计模式面试考点
分类(常见的设计模式) 1.创建型模式 a) 工厂模式 b) 抽象工厂模式 c) 单例模式 d) 建造者模式 2.结构型模式 a) 适配器模式 b) 装饰器模式 c) 桥接模式 d) 代理模式 3.行 ...
随机推荐
- springboot 配置过滤器
能配置例外 先写配置文件类 FilterConfig.java package com.ty.tyzxtj.config; import javax.servlet.Filter; import or ...
- 创建SVN仓库的步骤
今天在客户现场联调,两个开发人员之间的代码想用SVN来管理,所以就临时在本地机器上搭建一个SVN仓库.现将操作步骤记录下来,以便后续查阅. 1.安装SVN服务端Setup-Subversion-1.6 ...
- Effective java第一章引言
菜鸟一枚,开始读第一本书<Effective Java>(第二版)~ 看引言就有好多名词不懂(>_<) 导出的API由所有可在定义该API的包之外访问的API元素组成.一个包的 ...
- How to use QToolBar and QToolButton in Qt
http://developer.nokia.com/Community/Wiki/How_to_use_QToolBar_and_QToolButton_in_Qt How to use QTool ...
- python3与anaconda2共存
我是先下载了python3,后来因为需要2为了省事就去下载了anaconda2,但发现这里有个很严重的共存问题. 找了一下网上的各种共存问题,发现网上的基本上都是基于一个anaconda然后通过虚拟环 ...
- graphlab 安装好后的导入配置
本以为下好了的结果... 然后等个十几二十分钟... 关掉这个页面重新打开,再重新导入graphlab 貌似好了...但是,,, 发现是自己的文件放错盘了...在F盘... 然后就好啦~
- c++ Const关键字
转自:http://blog.csdn.net/Eric_Jo/article/details/4138548 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根 ...
- tensorflow1.0中的改善
TensorFlow 1.0 重大功能及改善 XLA(实验版):初始版本的XLA,针对TensorFlow图(graph)的专用编译器,面向CPU和GPU. TensorFlow Debugger(t ...
- ubuntu上安装nodejs
目录: 1. nodejs的下载 2. 解压和安装 3. 安装过程中出现过的问题 4. 总结 1. nodejs的下载 我刚开始没有linux系统,于是安装了nodejs的windows版本进行学习. ...
- 搭建svn服务器小结
最开始是用VisualSVN-Server来搭建服务器的,某一天安装了eset杀毒软件后,发现不能用了,每次打开配置页时报错.Visualsvn server 0x80070005 百度搜索,找到相同 ...