黑马程序员技术交流社区

标题: 最冤枉的关键字----sizeof [打印本页]

作者: qhw_fight    时间: 2016-3-31 22:56
标题: 最冤枉的关键字----sizeof
常年被人误认为函数
sizeof 是关键字不是函数,其实就算不知道它是否为 32 个关键字之一时,我们也可以 借助编译器确定它的身份。看下面的例子:
int i=0;
A),sizeof(int); B),sizeof(i); C),sizeof int; D),sizeof i; 毫无疑问,32 位系统下 A),B)的值为 4。那 C)的呢?D)的呢?
在 32 位系统下,通过 任意一编译器调试,我们发现 D)的结果也为 4。 咦?sizeof 后面的括号呢?没有括号居然也行,那想想,函数名后面没有括号行吗?由此轻 易得出 sizeof 绝非函数。
好,再看 C)。编译器怎么怎么提示出错呢?不是说 sizeof 是个关键字,其后面的括号 可以没有么?那你想想 sizeof int 表示什么啊?int 前面加一个关键字?类型扩展?明显不 正确,我们可以在 int 前加 unsigned,const 等关键字但不能加 sizeof。好,记住:sizeof 在 计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。一般情况下, 咱也别偷这个懒,乖乖的写上括号,继续装作一个“函数”,做一个“披着函数皮的关键字”。 做我的关键字,让人家认为是函数去吧。
作者: tdwydan1    时间: 2016-3-31 23:17
按照格式来就好
作者: 最爱舒儿    时间: 2016-4-1 00:33
主要看评论                                
作者: 堕落天使    时间: 2016-4-1 12:24
比较幽默!
作者: 缘之有缘    时间: 2016-4-1 22:41
学习了   
作者: 15527933998    时间: 2016-4-1 22:52
写的不错哟




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2