首页>Program>source

sizeof的主要功能是什么 (我是C ++的新手).例如

int k=7;
char t='Z';

sizeof (k)做什么 或 sizeof (int)sizeof (char) 是什么意思?

最新回答
  • 3天前
    1 #

    sizeof(x) 返回变量或键入 x的内存量(以字节为单位) 占.它与变量的值无关。

    例如,如果您有某个任意类型的数组 T 那么该数组元素之间的距离就是 sizeof(T)

    int a[10];
    assert(&(a[0]) + sizeof(int) == &(a[1]));
    

    在变量上使用时,等同于在该变量的类型上使用它:

    T x;
    assert(sizeof(T) == sizeof(x));
    

    作为经验法则,最好在可能的情况下使用变量名称,以防类型更改:

    int x;
    std::cout << "x uses " << sizeof(x) << " bytes." << std::endl
    // If x is changed to a char, then the statement doesn't need to be changed.
    // If we used sizeof(int) instead, we would need to change 2 lines of code
    // instead of one.
    

    在用户定义类型上使用时, sizeof 仍会返回该类型的实例使用的内存量,但值得指出的是,这不必等于其成员的总和。

    struct Foo { int a; char b; };
    

    虽然 sizeof(int) + sizeof(char) 通常是 5 在许多机器上, sizeof(Foo) 可能是 8 因为编译器需要填充结构,使其位于4个字节的边界上.并非总是如此,很有可能在您的机器上 sizeof(Foo) 将是5,但是您不能依赖它。

  • 3天前
    2 #

    要添加到彼得·亚历山大的答案中:sizeof会产生一个值的大小或键入一个 char大小的倍数 --- char 定义为给定体系结构可寻址(通过C或C ++)的最小内存单元(在C ++中,根据标准至少为8位).这通常是"字节"(给定体系结构的最小可寻址单元)的含义,但澄清起来从来没有什么坏处,并且偶尔会有关于 sizeof (char)可变性的问题 ,当然总是 1

  • 3天前
    3 #

    sizeof()返回传递给它的参数的大小。 sizeof()cpp参考

  • java:将参数传递给JDBC PreparedStatement
  • datetime:比较两个日期的Google Apps脚本