地址的数据类型

时间:2014-07-19 11:37:14

标签: c++ c

c或c ++中任何地址的数据类型是什么?是unsigned int还是signed int? 指针指向它们指向的相应数据类型的位置。 它可以是char或int或float任何东西,但我想问的是RAM中任何语言的地址的数据类型是什么。

4 个答案:

答案 0 :(得分:1)

地址只是一个引用内存位置的整数数值。 “类型”的概念是一种语言强加 - 在机器级别地址和数据都是简单的数字(因此术语数字计算机)。

地址宽度取决于具体的硬件架构。

指针和地址不一定是相同的 - 一些架构具有分页或分段的内存寻址方案,这可能意味着关系并不那么简单。例如,16位x86具有 near far 指针的概念,以及分段寻址方案,允许16或32位指针,每个指针可以解析为20位物理地址。

答案 1 :(得分:0)

C中的地址是指针值。

示例:

int a = 42;

a的地址为&a且类型为int *

答案 2 :(得分:0)

地址没有类型。它是指针,它们具有在定义时指定的类型。 至于地址,那么它们例如可以不使用等效整数表示的所有位。例如,地址的最高字节的最高有效位可能包含一些垃圾。实现定义了可以寻址的地址空间范围。 但无论如何,如果你要将一个地址重新解释为一个整数值,那么使用无符号类型在逻辑上更好。

答案 3 :(得分:0)

地址基本上以十六进制格式表示。地址没有特定的数据类型。 要使用C语言打印地址,您需要使用%p格式说明符。它不会发出任何警告。如果对地址使用%u格式说明符,则会发出警告。