zoukankan      html  css  js  c++  java
  • 最冤枉的关键字----sizeof

    <h4>一、常年被人误认为函数。</h4>
    &nbsp;
    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。

    <blockquote>好,记住:sizeof 在计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。一般情况下,咱也别偷这个懒,乖乖的写上括号,继续装作一个“函数”,做一个“披着函数皮的关键字”。</blockquote>

    做我的关键字,让人家认为是函数去吧。
    &nbsp;
    <h4>二、sizeof(int)*p 表示什么意思?</h4>
    &nbsp;
    留几个问题(讲解指针与数组时会详细讲解),32 位系统下:
    int *p = NULL;
    sizeof(p)的值是多少?
    sizeof(*p)呢?

    int a[100];
    sizeof (a) 的值是多少?
    sizeof(a[100])呢?//请尤其注意本例。
    sizeof(&a)呢?
    sizeof(&a[0])呢?

    int b[100];
    void fun(int b[100])
    {
    sizeof(b);// sizeof (b) 的值是多少?
    }

  • 相关阅读:
    php环境配置中各个模块在网站建设中的功能
    PHP+Apache+MySQL+phpMyAdmin在win7系统下的环境配置
    August 17th 2017 Week 33rd Thursday
    August 16th 2017 Week 33rd Wednesday
    August 15th 2017 Week 33rd Tuesday
    August 14th 2017 Week 33rd Monday
    August 13th 2017 Week 33rd Sunday
    August 12th 2017 Week 32nd Saturday
    August 11th 2017 Week 32nd Friday
    August 10th 2017 Week 32nd Thursday
  • 原文地址:https://www.cnblogs.com/liweilijie/p/4984205.html
Copyright © 2011-2022 走看看