笔试题记录

强制类型转换:

C++类型转换分为:隐式类型转换和显式类型转换

第1部分. 隐式类型转换

又称为“标准转换”,包括以下几种情况:
1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。

2)一种类型表达式赋值给另一种类型的对象:目标类型是被赋值对象的类型

3)将一个表达式作为实参传递给函数调用,此时形参和实参类型不一致:目标转换类型为形参的类型

4)从一个函数返回一个表达式,表达式类型与返回类型不一致:目标转换类型为函数的返回类型

第2部分. 显式类型转换

被称为“强制类型转换”(cast)
C     风格: (type-id)
C++风格: static_castdynamic_castreinterpret_cast、和const_cast..

标准C++中有四个类型转换符:static_castdynamic_castreinterpret_cast、和const_cast

static_cast

用法:static_cast < type-id > ( expression )

说明:该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。

dynamic_cast

用法:dynamic_cast < type-id > ( expression )

说明:该运算符把expression转换成type-id类型的对象。type-id必须是类的指针、类的引用或者void *;如果type-id是类指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。

dynamic_cast具有类型检查的功能,比static_cast更安全。

reinpreter_cast

用法:reinpreter_cast<type-id> (expression)

说明:type-id必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,在把该整数转换成原类型的指针,还可以得到原先的指针值)。

const_cast

用法:const_cast<type_id> (expression)

说明:该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。

时间: 2024-08-07 08:37:15

笔试题记录的相关文章

有意思的笔试题记录与分析

昨天参加了某公司的笔试,总的来说题目很简单.但是还是有几个个题目是很有意思的,拿来和大家分享下! 1.小周带着他的鸵鸟穿越1000公里的沙漠,运送3000颗白菜.已知鸵鸟一次性可驼1000颗白菜,但每走1公里又要吃掉1棵白菜,问:小周最终可以运多少颗白菜? 分析:记得以前算法设计书上有个类似的油车过沙漠的问题,当时这问题是用倒推法来解决的,因为它有个结题突破口:油车以最少的耗油量穿过沙漠.本题同是过沙漠问题,但是却没有像油车过沙漠的解题突破口,怎么办呢?我们先想一个极限:让小周直接带着1000颗

阿里笔试题记录(Android客户端部分)

阿里笔试题记录(Android客户端部分) 选择题 结果应该是选择 80,8 思路: - 指针的值都是一个个地址,而地址是用无符号整型值来表示的,也就是unsigned int.因此一个指针类型变量的大小就是unsigned int类型的大小. - 64位系统,一个地址占用的二进制位数为64(8字节),32位系统,地址的二进制位数32(4字节).参考64位操作系统的指针不都是64位吗 32位cpu和64位cpu,这个位数指的是数据字长,而不是地址字长.两者没有必然的数值上的联系.处理器字长是指处

某笔试题记录

今天笔试C++遇到的几道题,感觉还是有些难度的 1 int main() 2 { 3 int a[4][4] = { 4 {1,2,3,4}, 5 {50,60,70,80}, 6 {900,1000,1100,1200}, 7 { 13000, 14000, 15000, 16000 } 8 }; 9 10 int(*p1)[4] = a; 11 int(*p2)[4] = &a[0]; 12 int *p3 = &a[0][0]; 13 14 printf("%d %d %d

某图笔试题记录

考的很基础啊: 1.JPG.BMP区别:与BMP相同格式的有 2.RGB TO gray 3.积分图 4.HOG 5.PCA 6.图像数据增益? 7.激活函数的作用?

国内大公司前端开发笔试题记录大全

题目1 window.name的特性是什么? 题目2 window.window === window 题目3 3^5 = ? 3 | 5 = ? 3 || 5 && 8 = ? 题目4 'abcdefg'.slice(-1,-4) 题目5 jQuery判断元素是否可视 题目6 js如何实现大数相加 题目7 cc = function(a, b){arguments[1] = 100, console.log(b)} cc(2,23) // 结果是什么 题目8 给一个元素定义IE6-10显

Go_笔试题记录-指针与值类型实现接口的区别

简介 由于众所周知的原因,在下载一些库的时候会下载不了,比如 golang.org/x/... 相关的库.为此,网上出现了很多解决方案. 从 Go1.11 开始,Go 引入了 module,对包进行管理,通过 go mod 命令来进行相关操作.这里,我们基于 Go 目前最新版本 Go1.12,通过 module 来搭建 Goland 开发环境. 创建Project 打开 Goland,创建 project,左侧选择 Go Modules(vgo),在 Proxy 中输入:https://athe

史上最难PHPer笔试题,40分就能月薪过万!附答案

请批判性的学习,欢迎大牛指正错误 1.有关PHP字符串的说法,不对的是:A.如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1.B.PHP的字符串在内部是字节组成的数组,用花括号访问或修改字符串对多字节字符集很不安全.C.substr().strpos().strlen().htmlentities() 处理字符串时依据的编码方式是相同的.D.一个布尔值 Boolean 的 true 被转换成 string 的 " 1 ",false 被转换成

搜狗2015C++工程师笔试题解题分析

试卷链接:搜狗2015 C++工程师笔试题. 1.假设整数0x12345678 存放在内存地址0x0开始的连续四个字节中 (即地址0x0到 0x3). 那么在以Little Endian字节序存储的memory中,地址0x3的地方存放的字节是: 0x12 0x34 0x56 0x78 分析:选D.小端法和大端法. a) Little-Endian就是低位字节排放在内存的低地址端, 高位字节排放在内存的高地址端. b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地

笔试题系列001

测试笔试题类型:软件测试| 试题:55道试题(50道选择题,5道问答题)http://bbs.sjtu.edu.cn/bbsanc,path,%2Fgroups%2FGROUP_9%2FJobInfo%2FD7CD26755%2FD85486036%2FM.1131274669.A.html http://202.197.191.206:8080/38/text/test/test_2/shijuan2.htm 软件工程 http://test.examw.com/410/P6517/一.单选题