c++ - 使用指针C++为二维数组赋值

标签 c++ arrays pointers matrix multidimensional-array

我的任务是:“你的任务是用值填充 10x10 矩阵,将其变成乘法表。你不能使用括号。你不能使用索引。因此,你必须使用指针”

输出应该如下: 10x10 multiplication table

这就是我最终得到的解决方案:

#include <iostream> 
using namespace std; 
int main(void) {
int matrix[10][11] = {};

    for(int i = 0; i <= 10; i++) {
        for(int j = 0; j <= 10; j++) {
            matrix[i-1][j-1]= i*j;
        }
    }

    for(int i = 0; i < 10; i++) {
        for(int j = 0; j < 10; j++) {
        cout.width(4);
        cout << matrix[i][j]; }

        cout << endl;
    } 
}

我试图思考如何使用指针而不是索引,但我可以找到有关如何将指针用于二维数组的任何信息。

我刚开始学习 C++,如果您的帮助描述性足以让我理解并以最简单的形式提供,那就太好了。

谢谢!

最佳答案

你可以做到

#include <iostream> 
using namespace std; 
int main(void) {
int matrix[11][11] = {};

    for(int i = 1; i <= 10; i++) {
        for(int j = 1; j <= 10; j++) {
            *(*(matrix + i - 1) + j - 1) = i * j;
        }
    }

    for(int i = 0; i < 10; i++) {
        for(int j = 0; j < 10; j++) {
        cout.width(4);
        cout << matrix[i][j]; }

        cout << endl;
    } 
}

int[][] 可以用作 int**

所以矩阵可以被视为一个int** 并且 *(matrix + i)matrix[i]

相同

关于c++ - 使用指针C++为二维数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50271026/

相关文章:

c - 如何在 C 中使用 va_list 遍历命令行参数

C++ 多重继承(菱形方案)范式

C++ 这是堆栈分配还是堆分配?

c++ - 数组中的最大连续重复

c - 将指针移动 1 个结构 block

python - 为 C++(指针)创建 swig 包装器到 python

c++ - MPI_Send 错误

c++ - 在 union 中设置字段位的最佳方法

python - 无法弄清楚使用什么输入来使 cv2.calcOpticalFlowPyrLK 方法起作用

iboutlet 中用于变量的 iOS xcode