c - 多维数组中的指针运算

标签 c pointers multidimensional-array

<分区>

我知道对于二维数组 A[i][j] 等同于 *(*(A+i)+j),但是什么是(int *Arrptr)[5] 是什么意思?

最佳答案

(int *Arrptr)[5] 语法错误。

int (*Arrptr)[5]; // Arrptr is a pointer to an array of 5 int
int *Arrptr[5];  // Arrptr is an array of 5 pointeres to int

数组下标运算符[] 与标识符Arrptr 紧密绑定(bind),因此在第一个语句中需要括号。

关于c - 多维数组中的指针运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21971694/

相关文章:

c++ - 指针是如何比较的?

pointers - Go: **类型指针

c - 通用堆栈实现中的空指针(纯 C)

python - Pybind Numpy 访问 2D/ND 数组

vb.net - 等待多个Backgroundworkers完成

ruby - 从表中的类名创建动态变量,将 td 值移动到该行数组或散列中?

c - 如何清除 "warning: declaration does not declare anything [-fpermissive]"

c - 套接字编程 : recv/read issue

c - 仅当通过 makefile 执行程序时出现段错误

c - 有没有办法在运行时确定可用的堆栈空间?