1. 常量(const)初始化

  • (1)普通常量(const int)必须初始化
  • (2)常量指针(const int* ,int const *)不必初始化
  • (3)指针常量和普通常量一样必须初始化;
int main(int, char**)
{const int x = 10;// 普通常量必须初始化const int* p;// 常量指针不必初始化int* const p2 = &x;// 指针常量必须初始化return 0;
}

2. 指针与数组名(一维数组名、二维数组名)

int main(int, char**)
{int a[] = { 1, 2, 3, 4, 5 };int*  p = (int* )(&a + 1);cout << *(p - 1) << endl;return 0;
}

首先在算符优先级上:& 的优先级要高于 + 号。然后最为重要和关键的是,a 是一维数组名,&a 表示指向长度为 5 的数组的指针,&a+1则表示指向一个长度为 5 的下一个数组的指针(&a+i:有巡视一个二维数组的行的含义)。但此时不会报错。int* p = (int* )(&a+1);表示强制类型转换,将指向数组的指针转换为指向第二个数组中首元素的指针,所以 p-1 则是指向第一个数组最后一个元素的指针,因此输出为 5;

再来看二维数组的情况,

int main(int, char**)
{int a[][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };int *r1 = (int*)a + 1;// 先将 a(int[2][4]类型)强转为指针类型// 二维的结构不再,因为本身二维数组也是线性的连续空间,// (int*)a + 0 ⇒ (int*)a + 7 都是合法的int *r2 = (int*)(a+1);// a+1 表示二维数组的第二行cout << *r1 << endl;// 2cout << r2[0] << endl;// 5return 0;
}

3. C++ 中的接口

C++ 中的接口没有专门的关键字(如 Java 中的 interface)进行标示,C++ 中的接口指的是只包含纯虚函数(而不可以是 non-pure virtual)的抽象基类,

4. 堆对象的初始化问题

int* p1 = new int[10];
int* p2 = new int[10]();

动态分配的对象是默认初始化的,这意味着内置类型或组合类型的对象的值是无定义的(可调用()进行初始化),而类类型对象将用默认构造函数进行初始化。

int* p1 = new int();    // *p1 初始化为0
int* p2 = new int(2);// *p2 初始化为2
int* pa = new int[10]();// 全部初始化为0
int* pb = new int[10](2);// 错误,不可接受参数

5. 枚举类型变量的值

enum string{    x1,    x2,    x3=10,    x4,    x5,
} x;

其中

x1 = 0;
x2 = 1;
x3 = 10;
x4 = 11;
x5 = 12;

而对于 x,如果为全局变量其为 0,如果是局部变量,则其是随机值;

6. 全局变量,静态局部变量,局部变量空间的堆分配和栈分配

问如下对象的析构顺序:

C c;
void main()
{A*pa=new A();B b;static D d;delete pa;
}

析构顺序为:

A B D C

全局变量和静态局部变量时从静态存储区中划分的空间,二者的区别在于作用域的不同,全局变量作用域大于静态局部变量(只用于声明它的函数中)。

而之所以是先释放 D 在释放 C的原因是, 程序中首先调用的是 C的构造函数,然后调用的是 D 的构造函数,析构函数的调用与构造函数的调用顺序刚好相反。c 是全局对象,对它的初始化是在main函数之前, 所以析构时候要放在最后。

【笔试/面试】—— 奇葩 C/C++ 语法题相关推荐

  1. python笔试编程题_Python自动化测试笔试面试时常见的编程题

    前言 随着行业的发展,编程能力逐渐成为软件测试从业人员的一项基本能力.因此在笔试和面试中常常会有一定量的编码题,主要考察以下几点. 基本编码能力及思维逻辑 基本数据结构(顺序表.链表.队列.栈.二叉树 ...

  2. 【笔试/面试】—— 奇葩 C/C++ 语法题(二)

    1. 类所占空间的大小 在类中,如果什么都没有,则类占用1个字节,一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,如一个类只有一个int则占用4字节而不是5字节. 如果只有成员函数,则还是只 ...

  3. 【笔试/面试】—— 数学找规律题

    所谓找规律其实是寻找一个函数 f(x)f(x),一个映射. 数字敏感度 (1)数列是否可以转化为:某数的平方 + 另外一项的形式 5=22+110=32+127=52+2 5=2^2+1\\10=3^ ...

  4. 【IT公司笔试面试】75道逻辑推理题及答案

    [1]假设有一个池塘,里面有无穷多的水.现有2个空水壶,容积分别为5升和6升.问题是如何只用这2个水壶从池塘里取得3升的水. 由满6向空5倒,剩1升,把这1升倒5里,然后6剩满,倒5里面,由于5里面有 ...

  5. 46家中外知名企业笔试面试题目

    http://blog.sina.com.cn/s/blog_4897add3010009wj.html 微软 智力题 1.烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确 定 ...

  6. 转:九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)

    分类: 05.MS 100' original 2012-09-13 12:38 108951人阅读 评论(346) 收藏 举报 目录(?)[+] 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试 ...

  7. 数字IC设计工程师笔试面试经典100题-有答案

    转自知乎答主ictown_数字IC设计工程师笔试面试经典100题-有答案-陈恩 1:什么是同步逻辑和异步逻辑?(汉王) 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系. 同 ...

  8. 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题(10.29)

    文章出处:http://blog.csdn.net/v_july_v/article/details/7974418 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题 (参与算法&面 ...

  9. 九月十月百度人搜 阿里巴巴 腾讯华为笔试面试八十题 第331 410题

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 九月十月 ...

最新文章

  1. Define in the var of function
  2. poj 1151(线段树求面积并)
  3. linux安装python_VTK:华为笔记本电脑+深度deepin-linux+python下安装和入门
  4. linux下面使用飞书个人版预览doc
  5. java se/ee_嗨,您好 。 。 ! 您如何评价Java / Java EE技能?
  6. 深入探索 Android 包体积优化(匠心制作)
  7. 系统测试主要测试类型
  8. 近世代数 [计算机数学专题(3)]
  9. EndNoteX7中conference proceeding和conference paper的区别
  10. vs+qt 人脸识别GUI
  11. 【运筹学】线性规划 单纯形法原理 ( 构造初始可行基 | 基变换 | 最优性检验 | 解的判别 | 检验数 | ( 唯一 / 无穷多 ) 最优解判别定理 | 无界解判别定理 )
  12. word2016自动目录样式修改
  13. 改变磁盘格式gpt_改变游戏规则或结束游戏? 准备好参加GPT-3
  14. Day 41多表查询以及pymysql相关操作 完善
  15. Shell脚本学习-阶段二十七-命令解释二
  16. Java程序设计-书上重点总结
  17. 【mybatis原理工作原理】
  18. 读书可以改变命运,知识可以创造奇迹,这放在任何时代都不会过时
  19. 。2005年博客与Web2.0 十大武侠人物
  20. 截止2016年5月之前双色球数据统计

热门文章

  1. HIve之DML 聚合分组应用函数 静动态分区表
  2. scala从url或者其他数据源读取数据
  3. php ajax post请求数据变形,php-在AJAX调用中读取POST数据
  4. 修改云服务器上文件夹只读属性,求助:为什么我电脑里的文件夹会自动变为只读属性?...
  5. Pandas——merge(合并)
  6. OpenCV精进之路(零):core组件——Mat和IplImage访问像素的方法总结
  7. GridView上同时定义了 DataSource 和 DataSourceId
  8. Nginx教程负载均衡机制
  9. Ubuntu中eclipse端口被占
  10. 织梦手机站搜索结果显示为电脑站的搜索结果模板的解决方法