面试指南 笔记(四) 运算符
来源:互联网 发布:601939大智慧赢数据 编辑:程序博客网 时间:2024/04/30 04:28
那个++, --的问题我就不写了……
第一题:运算符优先级问题
所有C语言教程上都有吧……《C程序设计语言》第二版中文版 P42页。
大致一些规律:
1、单目优先
2、带赋值符的特别低,=,+=, -=……==(等等)
3、位逻辑优先于代数逻辑,即&,^,| 先于 &&,||,另外,& > ^ > | > && > ||
4、比较运算高于逻辑运算
另外,type、sizeof是运算符哦,亲!
第二题:x = 2; y = 3;(x = 0) && (y = 5) ;print(x,y); ( y = 5) || (x = 1);print(x,y);
这题跟编译密切相关,虽说上了编译原理课,但是我连中间代码生成都还写不出来……这个短路代码嘛,就是:
&&和||在判断左侧操作数就能确定结果的情况下,就不再对右侧操作数求值。
第三题:左值?右值?这是个问题……
右值:是存储在某内存地址中的数据。
左值:存储数据的那块内存的地址。
简单的例子就是 x = x-5; 左边的就是左值(一般是变量),右边那完整的一块(变量、表达式、常量)就是一个右值。
另外,在C++中,左值可以引用到函数上。函数名就是一个地址,所以表示一个左值。
书中给的例子:int f(char) ,则表达式f就是一个在左值,该表达式引用到对应的函数:int (*p)(char); 那么 *p 也是一个左值。函数类型的左值是不可修改的。
当然,这个函数引用怎么引用过去的,没说哎……
第四题:sizeof和数据类型的长度
这个让我想起我做过的第一份笔试题,在我参加的俱乐部活动中,公司给我们出题考考我们,之后要做项目。最开始拿了一份JAVA/ANDROID,看题后,彻底,于是又拿了份LINUX/C的来。其中就有好几题sizeof。当时根本不知道,只能是乱填了。
字符型数据就是一个字节,8位,所以范围只到250+6;sizeof(char) = 1;
整型的话,现在电脑多半是32位的了,所以sizeof(int\float) = 4; long 应该也是 4。
指针保存的是一个内存地址,所以,长度和整型是一样的,=4,哪怕它指向的是一个很复杂的结构体,还是 = 4。
结构体的话,则是把里面的各项的sizeof求和啦!不对,还有内存对齐问题,引入位域的概念,例如:
struct bs { int a:8; int b:2; int c:6;};
不过,这本书弄得我有些晕了……不知道是不是他出错了。最起码,内存对齐这部分没看懂。
- 面试指南 笔记(四) 运算符
- 面试指南 笔记(四) 运算符
- Java面试笔试指南(四)---基本类型、字符串、数组与运算
- java面试四 运算符测试
- C++面试笔记(四)
- 面试笔记4(运算符及优先级)
- 面试指南 笔记(一)基本概念
- 面试指南 笔记(二) 编程规范
- 面试指南 笔记(三) 数据类型
- 面试指南 笔记(一)基本概念
- 面试指南 笔记(二) 编程规范
- 面试指南 笔记(三) 数据类型
- 面试指南 笔记 (六) 预处理
- 面试指南 笔记(七) 常量
- 面试指南 笔记(十) volatile
- CUDA编程指南阅读笔记(四)
- 《HTTP权威指南》阅读笔记(四)
- 四、运算符(基本概念)
- hibernate的查询语法以及返回类型
- 面试指南 笔记(二) 编程规范
- 四极管:转载老罗
- 面试指南 笔记(三) 数据类型
- linux根文件系统制作
- 面试指南 笔记(四) 运算符
- 3.PL/SQL程序控制结构
- 网页导航菜单制作——快,很快,非常快
- 面试指南 笔记(五) C和C++的区别
- Java高并发:静态页面生成方案
- gcc
- opencv入门Vec3f
- vi & vim复制,粘贴,剪切文本
- 30条Java基础教程,程序员都要懂得