c或c ++中任何地址的数据类型是什么?是unsigned int还是signed int? 指针指向它们指向的相应数据类型的位置。 它可以是char或int或float任何东西,但我想问的是RAM中任何语言的地址的数据类型是什么。
答案 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
格式说明符,则会发出警告。