📜  C / C++中sizeof(int *)和sizeof(int)之间的区别

📅  最后修改于: 2021-05-30 12:07:34             🧑  作者: Mango

sizeof()是C或C++中常用的运算符。它是一个编译时一元运算运算符,可用于计算其操作数的大小。 sizeof()的结果是无符号整数类型,通常用size_t表示。该运算符可以应用于任何数据类型,包括原始类型(例如整数和浮点类型,指针类型)或复合数据类型(例如结构,联合等)。

由于sizeof运算符返回数据类型或我们传递给它的参数的大小。因此,在将(int *)变量传递给它之后,它应该返回的值:

  • 由于int *指向地址位置,因为它是变量的指针,因此, sizeof(int *)仅表示计算机上内存位置的值,并且内存位置本身为4字节至8字节整数值。
  • 在32位计算机上, sizeof(int *)将返回值4,因为32位计算机上的内存位置的地址值为4字节整数
  • 同样,在64位计算机上,它将返回8的值,因为在64位计算机上,内存位置的地址是8字节整数

现在,在将(int)变量传递给它之后,它应该返回的值:

  • 由于int是整数类型变量。因此, sizeof(int)仅表示整数的大小值。
  • 无论是32位计算机还是64位计算机, sizeof(int)始终将返回值4作为整数的大小。

下面是对64位计算机上的sizeof运算符的说明:

C
// C program to illustrate the
// sizeof operator
#include 
  
// Driver code
int main()
{
    // Print the sizeof integer
    printf("Size of (int) = %lu"
           " bytes\n",
           sizeof(int));
  
    // Print the size of (int*)
    printf("Size of (int*) = %lu"
           " bytes\n",
           sizeof(int*));
  
    return 0;
}


C++
// C program to illustrate the
// sizeof operator
#include "bits/stdc++.h"
using namespace std;
  
// Driver Code
int main()
{
    // Print the sizeof integer
    cout << "Size of (int) = "
         << sizeof(int) << " bytes\n";
  
    // Print the size of (int*)
    cout << "Size of (int *) = "
         << sizeof(int*) << " bytes\n";
  
    return 0;
}


输出:
Size of (int) = 4 bytes
Size of (int*) = 8 bytes
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。