同学被面试官问到一个细节中的细节,虽然个人觉得意义不大,但还是好奇并在和同学一起实验后搞清楚了,记录一下

如下:

int main() {
unsigned short a = 65535, b = 10;
for (int i = 0; i < a + b; i ++ )
cout << "hello world!" << endl;
return 0;
}

问:现象

不卖关子:现象是打印了65545行"hello world!"。起初十分费解,a和b都是short,返回值应该也是short吧,怎么会大于65535?!

一通探究后,发现了这些:

#include <iostream>

int main() {
short a = 32767, b = 10;
auto c = a + b;
std::cout << c << std::endl; // 32777 unsigned short d = 65535, e = 10;
auto f = d + e;
std::cout << f << std::endl; // 65545 int g = 2147483647;
auto h = g + 1;
std::cout << h << std::endl; // -2147483648: 10000000 00000000 00000000 00000000 unsigned int i = 4294967295;
auto j = i + 1;
std::cout << j << std::endl; // 0 return 0;
}

总结一下就是

shortunsigned short会在溢出后自动的隐式类型转换为int

intunsigned int并不会自动转换为long long

只能说这太细了,工作中遇到了再实验不也是简简单单?没实验过的人能掌握这么细吗?拿这个来作为考察内容之一合适吗?就别提海那边不问八股文的笔试、面试风格了。

最新文章

  1. ionic环境搭建及新建项目中的各种问题
  2. 总结一下响应式设计的核心CSS技术Media(媒体查询器)的用法。(转)
  3. python画图—黑板客老师课程学习
  4. 【Apache运维基础(5)】Apache的Rewrite攻略(2)
  5. codis集群和redis cluster的优劣对比
  6. Sass变量、嵌套
  7. kaggle之数字序列预测
  8. 通过YAJL生成json语句
  9. JAVA_SE基础——70.Math类
  10. golang:使用timingwheel进行大量ticker的优化
  11. OpenProject基础使用介绍
  12. LNMP组合环境
  13. HTML(八)HTML meta标签&amp;base标签
  14. 吴恩达机器学习笔记40-用调和平均数F来进行查准率和查全率之间的权衡(Trading Off Precision and Recall by F sore)
  15. 关于工具类中@Autowired注入为NULL的问题记录
  16. BZOJ3230 相似子串 字符串 SA ST表
  17. 《剑指offer》-二叉搜索树与双向链表
  18. ubuntu18+gtx1060 +cuda9+cudnn-v7+opencv3.1.0 配置深度学习环境
  19. oj错误之char型超出范围
  20. HDU 1247 Hat’s Words (字典树 &amp;amp;&amp;amp; map)

热门文章

  1. CGI、WSGI、uWSGI、ASGI……
  2. Java-递归查询法
  3. Vue DevUI v1.4 版本发布:从体验、效率、质量三个方面做了全方位的优化&#127881;
  4. Windows上将linux目录映射网络驱动器
  5. 12、HSSFWorkbook实现多张sheet导出
  6. [机器学习] PCA (主成分分析)详解
  7. 聚合查询、分组查询、ORM中如何给表再次添加新的字段、F与Q查询、ORM查询优化、ORM事务操作、ORM常用字段类型、ORM常用字段参数、Ajax、数据编码格式(Content-Type)、ajax携带文件数据
  8. SpringMVC学习笔记 - 第二章 - SSM整合案例 - 技术整合、统一结果封装、统一异常处理、前后联调、拦截器
  9. drf-day1——web应用模式、API接口、接口测试工具postman
  10. 10月28日内容总结——ATM项目开发流程