&a[x] 在 C 中返回值的类型

&a[x] in C what is type of value is returned

本文关键字:返回值 类型      更新时间:2023-10-16

下面的表达式在C语言中用于获取特定元素的地址:

 &a[x]

返回值的类型是什么?它依赖于什么?它是按照惯例总是相同的,还是取决于操作系统?


我需要知道这个,因为:

我需要从这个指针中提取一个位模式,所以我试图了解该值是十六进制还是二进制。当你说指针是像:0x25434或像0111000111?

因为这会影响我提取比特的方式

对于T类型的数组,返回值的类型是指向T的指针,声明为T *:

T a[] = ...;
T *ptr = &a[n];

如何显示这个指针——二进制、十六进制、十进制、莫尔斯——完全取决于显示它的代码。%p格式值是调试时常用的选择,它通常会以十六进制的形式打印指针的值(内存地址)。

如果指针所指向的地址需要用数字表示,可以通过将指针强制转换为uintptr_t整型来获得:

uintptr_t addr = (uintptr_t) ptr;

然后可以用通常的算术运算符和二进制运算符检查地址的位。

例如,如果a[]是int类型的数组,它将是int*。如果你是C语言新手,我建议你阅读这本书http://en.wikipedia.org/wiki/The_C_Programming_Language