2013-07-28 19:40:41

面试宝典上的题目设计到而定东西很碎,很繁琐,不是针对数据结构与算法的考查,准备在两周内看完,并把一些自己美考虑到的记下来,方便日后复习。

考查点:自增运算++、与解引用*的优先级,printf函数参数的压栈顺序

*(ptr++) += 123;  注意+与=之间不能有空格,否则报错 error C2059: syntax error : '='

另外,该语句的执行等价于

*ptr = *ptr + 123;

ptr++;

而不是

*(ptr++) = *(ptr++) + 123;

printf函数参数的压栈顺序是从右向左的,因此printf("%d,%d\n",*ptr,*(++ptr));先进行*(ptr++),然后*ptr。

疑问:

包括《C++primer》等在内的权威书籍中都指出自增运算++、与解引用*的优先级是相同的,而且结合性是自右向左,根据这种优先级,如何解释此处的情况??

代码:

 1 #include <iostream>
 2 using namespace std;
 3
 4 int main()
 5 {
 6     int array[] = {6,7,8,9,10};
 7     int *ptr = array;
 8
 9     *(ptr++) += 123;  //+与=之间不能有空格,否则报错 error C2059: syntax error : '='
10     printf("%d,%d\n",*ptr,*(++ptr));
11
12     return 0;
13 }

运行结果:

8,8
请按任意键继续. . .


考查:数据类型的装换以及数据在内存中的表示方式

(int)fvar是进行强制类型转换;

(int&)fvar:fvar地址开始的sizeof(int)个字节对应的int型数据;与fvar在内存中的表示方式有关。

float采用浮点表示方法,最高位为符号位,接下来的23位为阶码位,第8位为尾数。

代码:

 1 #include <iostream>
 2 using namespace std;
 3
 4 int main()
 5 {
 6     float fvar = 1.0f;
 7
 8     cout<<"test fvar = "<<fvar<<endl;
 9     cout<<(int)fvar<<endl;
10     cout<<&fvar<<endl;
11     cout<<(int&)fvar<<endl;
12     cout<<boolalpha<<( (int)fvar == (int&)fvar )<<endl;
13
14     fvar = 0.0f;
15     cout<<"test fvar = "<<fvar<<endl;
16     cout<<(int)fvar<<endl;
17     cout<<&fvar<<endl;
18     cout<<(int&)fvar<<endl;
19     cout<<boolalpha<<( (int)fvar == (int&)fvar )<<endl;
20
21     return 0;
22 }

运行结果:

test fvar = 1
1
0018FA18
1065353216
false
test fvar = 0
0
0018FA18
0
true
请按任意键继续. . .

【程序员面试宝典】第五章 程序设计基本概念相关推荐

  1. 程序员面试金典第五章 行为面试题

    程序员面试金典第五章 行为面试题 5.1准备工作 行为面试题的考察有各种各样的原因.人们可以通过这些问题来了解你的个性,或者是更深入地掌握你的履历,又或者缓和一下面试的紧张气氛.不管怎样,这个部分很重 ...

  2. java多线程面试题总结,java程序员面试宝典第五版

    前言 redis简单来说 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因此 redis 被广泛应用于缓存方向.另外,redis 也经常用来做分布式锁 ...

  3. 程序员面试宝典。。。突破心理防线

    今天偶然看见有朋友书架上有一本程序员面试宝典,前四章非技术,没仔细看.从第五章开始.习题的确是抠得很细但不小的内容.第5.4节是类型转换,这里考的是类型提升type promotion.题目如下: # ...

  4. Java程序员面试宝典笔记记录(1~3章概括)

    文章目录 导言 求职前重要的两点 求职者注意的几个方面: 挑选offer考虑5点 后台开发人员面试需要补充和阅览的书籍 需备技能方面 需要阅读的书籍(针对Java) 结语 导言   本博文是对于何昊出 ...

  5. 程序员面试宝典(第4版)

    <程序员面试宝典(第4版)> 基本信息 作者: 欧立奇 刘洋 段韬 出版社:电子工业出版社 ISBN:9787121207242 上架时间:2013-7-8 出版日期:2013 年7月 开 ...

  6. Java程序员面试宝典

    第1部分  求职过程 古人云:凡事预则立,不预则废.机会都是垂青有准备的人的.为了得到一份满意的工作,大家一定要对整个求职过程有清醒的了解.把能够预见的.必须做的事情早一些做完,这样在大规模招聘开始的 ...

  7. 《程序员面试宝典》精华 编程语言部分

    <程序员面试宝典>精华 编程语言部分 正所谓取其精华,去其糟粕.本文谨记录下<程序员面试宝典>一些关键的知识点.易错点,对于一些虽然重要但书中没有解释清楚的地方不做记录.当然这 ...

  8. 金九银十北漂记第2篇:《Java程序员面试宝典》读书笔记

    尽信书,则不如无书.-–孟子 谈一谈这本书  <Java程序员面试宝典>是我接触的第一本讲解面试相关的书籍在看到这本书之前我就经常逛csdn的bbs,已经接触面试之类的知识.不过这本书还是 ...

  9. 《程序员面试宝典》精华 底层部分

    <程序员面试宝典>精华 底层部分 正所谓取其精华,去其糟粕.本文谨记录下<程序员面试宝典>一些关键的知识点.易错点,对于一些虽然重要但书中没有解释清楚的地方不做记录.书里是没有 ...

  10. 《程序员面试宝典》精华 面向对象部分

    <程序员面试宝典>精华 面向对象部分 正所谓取其精华,去其糟粕.本文谨记录下<程序员面试宝典>一些关键的知识点.易错点,对于一些虽然重要但书中没有解释清楚的地方不做记录.书里是 ...

最新文章

  1. VC2010 编译问题
  2. WebStorm常用设置(转载)
  3. 前端开发学习笔记(一)深入浅出Javascript
  4. BAT 面试中,遇到知识盲点如何巧妙圆场?
  5. 网络编程函数小总结与初识socket
  6. volatile指令重排_面试:为了进阿里,重新翻阅了Volatile与Synchro
  7. Vue系列(2):Vue 安装
  8. mouse without borders其他选择中英对照说明
  9. DelayQueue 阻塞队列
  10. 30个Eclipse键盘快捷键大全,让你工作效率翻倍
  11. 国家开放大学2021春1021劳动与社会保障法题目
  12. MIPI屏上电时序问题
  13. 怎样描写事物的动态?
  14. 解决 Windows系统 快捷方式 图标 变成 白色方块
  15. html打印为pdf表格显示不全,打印表格时内容显示不完整怎么办?四种方法解决WPS不完整问题...
  16. eclipse设置护眼豆沙绿背景色以及字体颜色
  17. Day 01嵌入式学习之Linux基础知识和命令操作
  18. 解决HP电脑windows10系统提示未插入音频设备
  19. 神州电脑安装docker for Windows
  20. leetcode每日打卡_1646

热门文章

  1. 三年研发、数亿美元成本,Mate 20的“大杀器”麒麟980是怎样炼成的?
  2. 腾讯围棋AI绝艺战胜DeepZenGo又夺一冠
  3. 修改mysql root的秘密
  4. 玩转Excel系列-SUMIF函数实例教程
  5. Silverlight 用户代码未处理 TypeLoadException
  6. Why Go Is Not Good
  7. KMP算法代学习之(二)代码深入学习
  8. uva-10341-二分法
  9. 原生js 实现购物车价格和总价 统计
  10. 使用HAProxy、PHP、Redis和MySQL支撑每周10亿请求的架构细节【转】