c++ - 如何仅将矩阵的一维分配给 C++ 中的简单数组

标签 c++ arrays matrix multidimensional-array

<分区>

为什么我不能在 C++ 中做这样的事情? (不同于 JavaScript 或 PHP)

int matrix[100][100], ar[100];

//...reading the matrix...

ar = matrix[0];

我希望 ar 包含 matrix[0][0], matrix[0][1]...矩阵[0][100]。相反,它只是返回一个内存地址。 为什么这不起作用(C++ 没有的确切功能是什么,有什么缺点/优点吗?哪个?)以及如何复制此行为或至少复制相同的任务。 (无需循环和复制)

最佳答案

C++ 赋值 (operator =) 按值工作,其他语言,如 php 和 javascript 按引用分配。

为了做你想做的事,你需要使用指针:

int matrix[100][100]; // As a pointer, this can be seen as int **
int *row;

row = matrix[0];

int value = row[50];

关于c++ - 如何仅将矩阵的一维分配给 C++ 中的简单数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23094746/

相关文章:

C++单例模式

arrays - 在 item._id 为空的数组中查找项目

C++ 函数打印数组

r - 有没有办法将更大列表中的数据帧列表汇总在一起?

c - 数组比较中的意外行为

重现频率矩阵图

c++ - 即使没有按下任何按钮,事件类型也设置为 SDL_MOUSEBUTTONDOWN

c++ - 为什么将参数传递给 g++ 的顺序很重要

c++ - 加载 Rcpp 并运行示例代码

sql - 如何将两个 postgres 列合并为单个值(json 对象)