C 数组表达式

标签 c arrays pointers memory

我正在尝试解决 C 练习问题:

假设将 fubar 定义为数组,则以下指针表达式的等效 C 数组表达式是什么。每个数组元素是什么类型或定义了多少个元素并不重要。

*fubar 相当于 _____(使用 [] 的等效数组表达式,但没有 *)

我最初的答案是fubar[0],但我真的不知道。

最佳答案

*fubar 只是取消引用 fubar

fubar[0] 相当于 *(fubar + 0)。原因是 fubar 指向数组的开头,因此如果在 fubar 之后跳转 N 个位置,就会到达 >N 个 元素,即 fubar[k]

所以,是的,*fubar 相当于 fubar[0]。即,fubar = &(fubar[0])

关于C 数组表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737039/

相关文章:

python - 在 python 中优化子数组最大/最小分析

C 正确释放多维数组

c - 分配给不兼容的指针类型双指针

c - 为什么在 malloc 中使用 sizeof(*pointer) 更安全

c - ANSI C 在创建结构时必须使用 malloc() 吗?

c - 在调用之前确定 realloc() 行为

c - 初学者 C 程序 - 如何从字谜程序中的循环返回必要的输出?

PHP范围问题

c - 在 C : n-dimensional arrays 中取消引用非指针

c++ - 是否可以将任何原始类型传递给需要指针的函数?