使用指针在数组中查找值
Finding value in array using pointer
对于计算机科学课,我有以下作业。
给定一个包含128行和32列的双精度二维数组。数组是通过将列依次放在内存中来存储的。完成以下函数,该函数在给定指向数组第一个元素的指针的情况下返回正确的元素,以及一些列和行值。
#define N_COLUMNS 32
#define N_ROWS 128
static inline double get_element(const double *A, const int row, const int column)
{...
}
这就是我目前所掌握的,但我认为这是不对的。
return *A + column * sizeof(double) + row * sizeof(double);
有人能帮我吗?
据我所知,假设基于零的索引,通过使用指针算术可以获得如下所需的结果。
return *( A + ( column * N_ROWS ) + row );
这里不需要使用sizeof(double)
,因为A
是适当类型的。与之相加将使sizeof(double)
前进到被加数的3倍。
尝试A+column_number*column_size+row_number
请记住,数组从第0列第0行开始,以便于计算
返回语句看起来像
return *( A + column * N_ROWS + row );
实际上,您有一个存储N个_COLUMNS * N_ROWS
元素的一维数组,这些元素被拆分为N_ROWS
元素组。
考虑到没有必要将限定符const与参数行和列一起使用
这些函数声明
static inline double get_element(const double *A, const int row, const int column);
和
static inline double get_element(const double *A, int row, int column);
是等效的,并声明相同的一个函数。
相关文章:
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 需要使用模板查找数组的第二个最小和最小值
- 用于查找数组中最大元素的出现次数的代码,给出分段错误
- 查找数组中指示性较大但数组中值较小的元素
- C++ 函数,用于查找数组中四个最小最大元素的总和不起作用
- 查找数组中的最小数字
- 查找数组中重复(重复)数字的索引
- 使用一个内存集数组和单个堆栈在 O(n) 中查找数组的下一个更大元素
- 查找数组中给定数字的出现次数
- 使用 std::累加来查找数组的总和
- 代码以查找数组中的最大数字,但它仅将第一个数字显示为最大数字. 有人请告诉我为什么
- 在不进行排序的情况下查找数组中n个最小值的索引
- 当数组在C++中用作参数时,查找数组的元素数
- 查找数组中数组元素的重复出现?
- 查找数组最后 3 个数字的平均值
- 查找数组中是否存在C++元素
- 查找数组中的最小更改数以进行 k 算术级数
- 查找数组的第一个和最后一个索引,其中 from 和 to 元素的顺序总和最大
- 有没有办法在递归中使用指针来查找数组的最小值?
- 在编写代码以查找数组中的对数时获取分段错误