&a[x] 在 C 中返回值的类型
&a[x] in C what is type of value is returned
下面的表达式在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
相关文章:
- 如何使用 uint64_t 键类型从 std::map<int, std::string> 返回值?
- 对于具有引用返回类型的搜索算法,默认返回值应该是什么?
- 函数的返回值类型是别名 ***或 *** 布尔值
- 如何为具有常量类型的函数正确转换来自 DLsym 的返回值?
- Pybind11:作为返回值的外部类型
- 从类型bankAccount的返回值到函数返回类型int没有可行的转换
- 更改 Python 切换的 C 函数的返回值类型
- C 语法,根据此代码返回值类型
- 类成员函数的返回值类型
- 如何捕获返回 lambda 的函数的返回值类型
- 如何从std :: function推断返回值类型
- 分配操作员返回值类型
- 使用延迟加载加载正确的库 - 返回值类型错误
- 返回指向常量getter的指针时,返回值类型与函数类型不匹配
- 返回值类型与函数类型CONST不匹配
- 提升phoenix值和函数返回值类型
- C++ 返回值类型与函数类型不匹配
- const成员函数的优先级高于返回值类型匹配
- boost::resulf_of或返回值类型为boost_TYPEOF
- 将函数的返回值类型转换为大小相同的不相关类型