为什么C#中的sizeof(int*)=8,C++中的sizeof[int*]=4

本文关键字:int sizeof 中的 C++ 为什么 | 更新日期: 2023-09-27 18:21:40

C#

 sizeof(int*)
 8

C++

 sizeof(int*)
 4

为什么会这样?同样,C#中的sizeof long是8。在C++中是4。

为什么C#中的sizeof(int*)=8,C++中的sizeof[int*]=4

Simple:您正在获取指针类型的大小。8将是用于64位应用程序的适当大小。4将适用于32位应用程序。

有人会假设您正在使用64位.net和32位C++代码运行C#代码。

您在64-bit上编译C#程序,在32-bit上编译C++程序。

指针的大小取决于处理器体系结构。在32位上,所有指针都是32位(4字节)。在64位上,它们是64位(8字节)。

您一定已经将64位C#应用程序与32位C++应用程序进行了比较。

CCD_ 5在C#和C++中是不同的类型。在C++中,它是一个32位整数。在C#中,它是64位的。

操作系统和编译器的组合以及编译器的设置将决定指针和其他类型的大小。在所有现代64位处理器中,处理器(和大多数操作系统)都支持运行32位和64位可执行文件,因此根据设置,您可以获得32位或64位指针大小[其他类型可能会更改,也可能不会更改,具体取决于编译器和操作系统的组合]。

C、C#和C++没有固定大小的原因是允许为大量不同的处理器编译语言,包括具有24位整数大小或9位字符(和36位int)的"奇怪"处理器