美文网首页C/C++经验技巧总结
C++中用sizeof计算一个类的大小时,应排除static成员

C++中用sizeof计算一个类的大小时,应排除static成员

作者: XDgbh | 来源:发表于2018-06-14 18:09 被阅读1次
  • sizeof的本质是得到某个类型的大小,确切的来说就是当创建这个类型的一个对象(或变量)的时候,需要为它分配的空间的大小。而类也可以理解为类似于int、float这样的一种类型,当类中出现static成员变量的时候,static成员变量是存储在静态区当中的,它是一个共享的量,因此,在为这个类创建一个实例对象的时候,是无需再为static成员变量分配空间的,所以,这个类的实例对象所需要分配的空间是要排除static成员变量的,于是,当sizeof计算类的大小的时候会忽略static成员变量的大小。
  • sizeof计算类的大小时,只计算(非static的)数据成员变量即可,不用考虑那些成员函数。
  • sizeof是操作符,后面如果是一个变量或者一个实际的值(如3或0.3),那么可以不加括号,如果是类型名则必须加括号。
    strlen()是一个函数,内部实现是循环计算实际字符个数,直到遇到结束符'\0'为止。
    程序在编译的时候就把sizeof大小计算好了,因此可以将sizeof计算值作为数组元素个数的参数。然而strlen大小必须在程序运行时才知道。
  • sizeof操作计算一个数组名时,得到数组的内存大小,而不是实际字符的个数。sizeof操作的是一个指针时得到指针大小4字节。而strlen()的参数是char ,传入数组名时会自动转为char类型,会得到数组字符串(带'\0'结束符的字符数组)中实际字符个数。

相关文章

  • C++中用sizeof计算一个类的大小时,应排除static成员

    sizeof的本质是得到某个类型的大小,确切的来说就是当创建这个类型的一个对象(或变量)的时候,需要为它分配的空间...

  • java基础之--static关键字

    static关键字的介绍 在类中用static声明的成员变量为静态成员变量,是类的公用变量,在第一次使用时初始化,...

  • C++ 碎知识点

    C++ 碎知识点 23. 不能被重载的运算符 ** sizeof **:sizeof 运算符 ** . **:成员...

  • 1.2.10_C++ 类的静态成员

    C++ 类 & 对象 我们可以使用 static 关键字来把类成员定义为静态的。 当我们声明类的成员为静态时,这意...

  • java易忽略知识点

    1.变量类型: 类变量,即每个类中用static修饰的变量,这种变量属于类,而不是属于对象。 成员变量,独立于方法...

  • static

    c的static 全局变量 定义初始化最好在.c文件c++类的static成员变量在.h class中只是声明

  • Java_basic_3: static, this 关键字

    static static 静态变量 Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所...

  • static关键字

    static说明 static: 静态的,使用static修饰的成员称为静态成员、类成员static修饰的属性称为...

  • C++面向对象编程(下)第二周笔记 GeekBand

    1.对象模型 C++对象模型中,non static数据成员被放置到对象内部,static数据成员,static ...

  • C++空类的大小

    C++的空类是指这个类不带任何数据,即类中没有非静态(non-static)数据成员变量,没有虚函数(virtua...

网友评论

    本文标题:C++中用sizeof计算一个类的大小时,应排除static成员

    本文链接:https://www.haomeiwen.com/subject/naoyeftx.html