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.行 ...
随机推荐
- 【P2325】王室联邦(树的遍历+贪心)
在肖明 #神#的推荐下,我尝试了这个题,一开始想的是暴力枚举所有的点,然后bfs层数,试着和肖明 #神#说了这种方法之后, #神#轻蔑的一笑,说这不就是一个贪心么,你只需要先建树,然后从底下向上遍历, ...
- EntityFramework 学习 一 Execute Native SQL Query
SQL query for entity types: using (var ctx = new SchoolDBEntities()) { var studentList = ctx.Student ...
- Bluetooth Profile for iPhone from the functional perspectives
Classic Bluetooth Profile for iPhone from the functional perspectives Function Description BT Profil ...
- 用js将一个数组合并到另一个数组中
var arr1 = ["one","two","three"]; var arr2 = ["1","2&qu ...
- ANT+JMETER集成2 (发送邮件)
折腾一天发现各种build源码都不能发送邮件,试了很多次,终于能发送邮件 先看成果 build源码贴出来 <?xml version="1.0" encoding=" ...
- SaaS架构经验总结
2B Saas系统最近几年都很火.很多创业公司都在尝试创建企业级别的应用 cRM, HR,销售, Desk Saas系统.很多Saas创业公司也拿了大额风投.毕竟Saas相对传统软件的优势非常明显. ...
- Centos 查看版本
# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
- jq中append()、prepend()、after()、before()的区别详解
1.append() - 在被选元素的结尾插入内容(内容的结尾,比如说有个a标签,则是在</a>这个标签之前添加东西) 2.prepend() - 在被选元素的开头插入内容(内容的开始,比 ...
- .netframe work的操作系统支持版本
https://msdn.microsoft.com/zh-cn/library/8z6watww.aspx
- Mssql 跨域查询
有数据库test1和数据库test2.其中test1中有表 table1.table2:test2 中有表 table1.三个表的字段都为为:id.xingming.shijian.shuliang. ...