javascript和JQuery焦点图和代码特效大全
当前最流行的开源CMS网站系统大全
当前位置:首页 > 编程开发 > C语言C++

Effective C++:sizeof

来源:IT技术网编辑:秩名发布于:2017-02-09人围观


sizeof运算符: 返回一条表达式或者一个类型名字所占的字节数.返回值得类型为std::size_t.

主要有以下两种形式:

sizeof (type);

sizeof expr;

在sizeof的运算对象中解引用一个无效的指针仍然是一种安全的行为,因为指针实际上并没有被正在的使用。sizeof不需要真正的解引用也能知道指针所指的类型.

其次呢:

1,sizeof运算符的结果依赖于其作用的类型.

2,对char类型或者结果为char类型的表达式执行sizeof运算符,结果为1.

3,对引用类型执行sizeof运算符得到被引用对象所占的空间大小.

4,对于解引用指针指向sizeof运算符得到指针所指对象的类型,指针不需要有效.

#include <iostream>

struct Empty {};
struct Base { int a; };
struct Derived : Base { int b; };
struct Bit { unsigned bit: 1; };

int main()
{
    Empty e;
    Derived d;
    Base& b = d;
    Bit bit;
    int a[10];
    std::cout << "size of empty class: "              << sizeof e          << '\n'
              << "size of pointer : "                 << sizeof &e         << '\n'
//            << "size of function: "                 << sizeof(void())    << '\n'  // error
//            << "size of incomplete type: "          << sizeof(int[])     << '\n'  // error
//            << "size of bit field: "                << sizeof bit.bit    << '\n'  // error
              << "size of array of 10 int: "          << sizeof(int[10])   << '\n'
              << "size of array of 10 int (2): "      << sizeof a          << '\n'
              << "length of array of 10 int: "        << ((sizeof a) / (sizeof *a)) << '\n'
              << "length of array of 10 int (2): "    << ((sizeof a) / (sizeof a[0])) << '\n'
              << "size of the Derived: "              << sizeof d          << '\n'
              << "size of the Derived through Base: " << sizeof b          << '\n';

}

与相关的文章
有时间的话来看看IT界的突发事件