如果我有数组a,我将如何设置指向第一行的指针?

double a[2][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}};

推荐答案

您可以声明一个指向行的指针,并使用以下行将其初始化为指向第一行:

double (*p_first_row)[4] = &a[0];

由于array to pointer decay,您还可以写:

double (*p_first_row)[4] = a;

括号是必需的,因为声明

double *p[4];

声明指针数组,而

double (*p)[4];

声明指向数组的指针.

C++相关问答推荐

位屏蔽对于无符号转换是强制的吗?

设计处理各种数据类型的方法和数据 struct

常数函数指针优化

当execvp在C函数中失败时杀死子进程

C lang:当我try 将3个或更多元素写入数组时,出现总线错误

为什么即使在强制转换时,此代码也会溢出?

使用双指针动态分配和初始化2D数组

将宏值传递给ARM链接器,该链接器将变量放置在特定位置

如何使用指向 struct 数组的指针并访问数组中特定索引处的 struct

Square不与Raylib一起移动

链接到底是如何工作的,我在这里到底做错了什么

将多项式从文件.txt加载到终端时出现问题

用C++构建和使用DLL的困惑

C标准关于外部常量的说明

计算SIZE_MAX元素的长数组的大小

浮动目标文件,数据段

atoi函数最大长-长误差的再创造

全局变量 y0 与 mathlib 冲突,无法编译最小的 C 代码

初始化时无法将‘float****’转换为‘float (*)[128][3][4]’

为什么转换为 uint64_t 会改变此代码中的结果?