求学快递网是国内领先的B2M2C教育培训网上信息平台!

首页 | 分站加盟 | 课程发布 | 最新课程 | 最新机构 | 培训专题 | 全国分站 | 帮助中心

计算机等级考试_计算机等级考试报名_计算机考试成绩查询_求学快递网

计算机等级考试一步到位
您的位置:求学快递网 > 计算机等级考试 > 考试辅导 > 计算机二级 > 计算机二级C++备考sizeof使用技巧辅导 - 正文内容

计算机二级C++备考sizeof使用技巧辅导

计算机二级C++备考sizeof使用技巧辅导

 

求学快递网计算机等级考试专题重点推荐:2016年计算机级考试报考时间 2016年计算机二级考试证书领取时间2016年计算机二级考试报考指南2016年计算机二级考试大纲2016年计算机二级考试政策2016年计算机二级考试报考条件2016年计算机二级考试科目等最新新闻资讯。

 

什么是sizeof

首先看一下sizeof在msdn上的定义

The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types)。 This keyword returns a value of type size_t.

看到return这个字眼,是不是想到了函数?错了,sizeof不是一个函数,你见过给一个函数传参数,而不加括号的吗?sizeof可以,所以sizeof不是函数。网上有人说sizeof是一元操作符,但是我并不这么认为,因为sizeof更像一个特殊的宏,它是在编译阶段求值的。举个例子

1. cout《sizeof(int)《endl; // 32位机上int长度为4

2. cout《sizeof(1==2)《endl; // == 操作符返回bool类型,相当于 cout《sizeof(bool)《endl;

3.

在编译阶段已经被翻译为

1. cout《4《endl;

2. cout《1《endl;

这里有个陷阱,看下面的程序

1. int a = 0;

2. cout《sizeof(a=3)《endl;

3. cout《a《endl;

输出为什么是4,0而不是期望中的4,3???就在于sizeof在编译阶段处理的特性。由于sizeof不能被编译成机器码,所以sizeof作用范围内,也就是()里面的内容也不能被编译,而是被替换成类型。=操作符返回左操作数的类型,所以a=3相当于int,而代码也被替换为

int a = 0;

cout《4《endl;

cout《a《endl;

1 cout 《 sizeof("abcd") 《 endl;//5

"abcd"返回是字符串类型

所以,sizeof是不可能支持链式表达式的,这也是和一元操作符不一样的地方。

结论:不要把sizeof当成函数,也不要看作一元操作符,把他当成一个特殊的编译预处理。

 

 

 

 

 

关注求学快递网计算机等级考试专题,帮你了解最新的2016年计算机二级考试资讯服务2016计算机二级考试成绩查询,让你轻松备考计算机等级考试!

求学快递网计算机等级考试专题的小编们根据网民搜索喜爱,第一时间公布2016年计算机二级模拟试题2016年计算机二级考试应试技巧计算机二级考试历年真题2016年计算机二级考试章节复习供广大求学爱好者学习使用,欢迎继续关注求学快递网计算机等级考试专题,并给我们提供宝贵的意见!

 

相关推荐

计算机等级考试最新机试技巧
计算机等级考试高效利用技巧

最新计算机资讯

热点专题

计算机等级考试经验技巧分享

关于本站  诚征英才  广告服务  招生服务  免责声明  分站加盟  VIP会员  联系我们  网站地图  网站记事

版权所有 CopyRight 2008-2017 粤ICP备14009694号 www.studyems.com, Inc. All Rights Reserved
违法和不良信息举报邮箱:2881796407@qq.com 举报电话: