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

时间:2015-11-12 22:15:24

标签: c# c++

C#

 sizeof(int*)
 8

C ++

 sizeof(int*)
 4

这是为什么? C#中的sizeof也是8.在C ++中,它是4。

4 个答案:

答案 0 :(得分:15)

简单:您正在获取指针类型的大小。对于64位应用程序,8将是合适的大小。 4适用于32位应用程序。

可以假设您使用64位.net和32位C ++代码运行C#代码。

答案 1 :(得分:2)

您正在C#上编译64-bit计划,C++编译32-bit个计划。

答案 2 :(得分:1)

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

您必须将64位C#应用程序与32位C ++应用程序进行比较。

{{1}}是C#和C ++中的不同类型。 here它是一个32位整数。 In C++它是64位。

答案 3 :(得分:1)

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

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

的那些