博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++查缺补漏2,赶紧的
阅读量:6226 次
发布时间:2019-06-21

本文共 1498 字,大约阅读时间需要 4 分钟。

先来看一段代码把: 

#include 
#include
using namespace std;void foo(void){ unsigned int a = 6; int b = -20; (a+b > 6) ? puts("> 6") : puts("<= 6");}int _tmain(int argc, _TCHAR* argv[]){ foo(); unsigned int c=1; int d=-5; cout<
<
输出的结果是:

有没有一点吃惊?

这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。

下面再来看看一段代码:

#include 
#include
using namespace std;int _tmain(int argc, _TCHAR* argv[]){ char *ptr=NULL; ptr=(char*)malloc(0); if(ptr==NULL){ cout<<"Got a null pointer"<
输出的结果为:

我询问一些技术大牛,她们的回答是:

malloc(0)是未定义的,返回NULL或者不是NULL,都是满足ISO C标准的。有些操作系统会返回一个指针 

Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子:

#define dPS struct s * 

typedef struct s * tPS;

以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么? 

这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。答案是:typedef更好。思考下面的例子:

dPS p1,p2; 

tPS p3,p4;

第一个扩展为

struct s * p1, p2; 

上面的代码定义p1为一个指向结构的指,p2为一个实际的结构,这也许不是你想要的。第二个例子正确地定义了p3 和p4 两个指针。晦涩的语法

16 . C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?

int a = 5, b = 7, c; 

c = a+++b;

这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:

c = a++ + b;

因此, 这段代码持行后a = 6, b = 7, c = 12。

 

7.C++中为什么用模板类。 

答:(1)可用来创建动态增长和减小的数据结构 
(2)它是类型无关的,因此具有很高的可复用性。 
(3)它在编译时而不是运行时检查数据类型,保证了类型安全 
(4)它是平台无关的,可移植性 
(5)可用于基本数据类型

转载地址:http://llfna.baihongyu.com/

你可能感兴趣的文章
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
百度页面分享插件源代码
查看>>
《别做正常的傻瓜》的一些读书心得
查看>>
作业:实现简单的shell sed替换功能和修改haproxy配置文件
查看>>
spring配置多数据源问题
查看>>
Altium 拼板方法以及 注意的 地方
查看>>
简明Linux命令行笔记:tail
查看>>
PMP考试的过与只是
查看>>
java 监控 收集资料3(收集中)
查看>>
实例演示如何使用AgileEAS.NET SOA平台工作流进行业务流程自定义
查看>>
Spring Cloud Alibaba迁移指南(二):零代码替换 Eureka
查看>>
聊聊BOM的那些事
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
getRealPath()和getContextPath()的区别
查看>>
Hadoop MapReduce编程 API入门系列之wordcount版本2(六)
查看>>
一个页面标题和过滤输出的解决方案(上)
查看>>
解决windows使用rsync同步到Linux权限问题
查看>>
python pip install 出现 OSError: [Errno 1] Operation not permitted
查看>>
【九度OJ1367】|【剑指offer24】二叉搜索树的后序遍历序列
查看>>