• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c++基础知识--操作符sizeof

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

   sizeof操作符的作用是返回一个对象或类型名的长度(单位为字节),sizeof表达式的结果是编译时常量。

(1)char类型或者值为char的表达式sizeof为1;

(2)引用类型的sizeof返回存放此引用类型对象所需的内存大小;

(3)指针的sizeof为4,若需获取指针指向对象的大小需对指针做解引用;

(4)对数组做sizeof返回整体数组的大小,所以可以有sizeof求数组个数:

        int sz = sizeof(ia)/sizeof(*ia);

(5)对函数使用sizeof,在编译阶段会被函数返回值的类型取代(不执行函数)。同样在sizeof后的表达式也不会执行,如下程序输出为4,0:

     int a =0;
     cout<<sizeof(a=3)<<endl;

         cout<<a<<endl;

 

扩展:定义一个空类型,里边没有任何成员变量和函数。该类型的sizeof为1.如果在类型中定义构造函数和析构函数,则sizeof结果仍然为1.

        如果将析构函数定义为虚函数,则sizeof为4,因为类型中有虚函数时,会为该类型生成虚函数表,并在类型的实例中添加指向虚函数表的指针,所以大小为4。

 

测试代码如下:

 

#include<iostream>
using namespace std;
class testb
{

};
class teste
{
public:
    teste(){};
    ~teste(){};
};

class testf
{
public:
    testf(){};
    virtual ~testf(){};
};

char testFunc(int);
int main()
{
    int a = 6;
    char c= 'r';
    char *d = "123";
    int f[4];
    cout<<"sizeof(a):"<<sizeof(a)<<endl;
    cout<<"sizeof(c:"<<sizeof(c)<<endl;
    cout<<"sizeof(d):"<<sizeof(d)<<endl;
     cout<<"sizeof(testFunc(3)):"<<sizeof(testFunc(3))<<endl;
          cout<<"sizeof(f):"<<sizeof(f)<<endl;
  cout<<"sizeof(testb):"<<sizeof(testb)<<endl;
  cout<<"sizeof(teste):"<<sizeof(teste)<<endl;
  cout<<"sizeof(testf):"<<sizeof(testf)<<endl;
  system("Pause");

}

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#索引器、哈希表Hashtabl、字典Dictionary发布时间:2022-07-18
下一篇:
C#压缩率最高的压缩方法deflater发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap