设为首页 加入收藏

TOP

7.2.3 sizeof运算符
2013-10-07 01:12:58 来源: 作者: 【 】 浏览:69
Tags:7.2.3 sizeof 运算

7.2.3  sizeof运算符

初学者常常分不清某个变量是否是指针,尤其在面对定义复杂的指针时更显束手无策。这里向读者介绍一个很有用的运算符--sizeof,它可以帮助识别指针。sizeof也是一个运算符,虽然它的用法看起来很像一个函数。它在编译时计算,返回的是对象的长度,格式如下:

  1. sizeof object  
  2. 或  
  3. sizeof(object) 

例如,sizeof int和sizeof(int)都是在测试整型类型的长度,sizeof var和sizeof(var)都是在测试变量var的长度。由于指针所占的字节数在同一机型上是定长的,比如在32位机上是32位长,因此可以用它来测试某个变量是否是指针。

【示例7-3】 利用sizeof运算来识别指针。

  1. int main(void)  
  2. {  
  3.     char *pChar;                    //字符指针  
  4.     double *pDouble;                //双精度指针  
  5.  
  6.     cout<<sizeof(pChar)<<endl;      //计算字符指针的长度  
  7.     cout<<sizeof(*pChar)<<endl;     //计算指针所指内容的长度  
  8.     cout<<sizeof(pDouble)<<endl;    //计算指针的长度  
  9.     cout<<sizeof(*pDouble)<<endl;   //计算指针所指内容的长度  
  10.     return 0;  

分析:该示例的可能输出如下所示。

  1. 4  
  2. 1  
  3. 4  

分析:该示例中定义两个指针变量。第1条输出语句输出了4,而char型数据的长度为1,故pChar是指针,*pChar是char型数据。第3条输出语句输出了4,而第4个输出了8,表明pDouble是指针,*pDouble是double型数据。

虽然不能完全用sizeof来区分指针和非指针,但它可以作为一个有用的辅助手段来适用。要想学好指针,理解指针的涵义,还需要重点注意下面几个概念。

指针:内存单元的地址,是常量;

指针变量:保存指针的变量,类型依所指向的内存单元的数据而定,常简称为指针;

指针本身的类型:指针本身的类型是无符号整型;

指针的类型:指针所指向的类型,指针所指向的内存单元的数据的类型;

指针的值:指针所指向的内存单元的数据内容;

变量名是直接引用,指针则是间接引用。

说明:*号在指针定义中是指针标识,不在定义中与指针在一起表示指针指向的内存单元。在7.8节会详细讲解它的用法。指针与数组组合时也比较复杂,本书在数组一章中会有详细介绍。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇7.4.3 用new分配内存单元 下一篇7.2.2 指针的分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: