[c++] 배열과 포인터를 사용한 행렬 연산

배열과 포인터는 C++에서 행렬 연산을 수행하는 데 중요한 도구입니다. 이러한 도구들을 사용하면 메모리를 효율적으로 사용하고 행렬 연산을 보다 효율적으로 수행할 수 있습니다.

1. 배열을 사용한 행렬 연산

#include <iostream>
using namespace std;

int main() {
    int A[2][2] = { {1, 2}, {3, 4} };
    int B[2][2] = { {2, 0}, {1, 2} };
    
    int C[2][2];

    for(int i = 0; i < 2; i++) {
        for(int j = 0; j < 2; j++) {
            C[i][j] = A[i][j] + B[i][j];
            cout << C[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

위의 예제에서는 2x2 행렬 A와 B를 선언하고, 이를 이용하여 덧셈 연산을 수행한 후 행렬 C에 저장합니다.

2. 포인터를 사용한 행렬 연산

#include <iostream>
using namespace std;

int main() {
    int A[2][2] = { {1, 2}, {3, 4} };
    int B[2][2] = { {2, 0}, {1, 2} };
    int C[2][2];

    int *ptrA = &A[0][0];
    int *ptrB = &B[0][0];
    int *ptrC = &C[0][0];

    for(int i = 0; i < 4; i++) {
        *(ptrC + i) = *(ptrA + i) + *(ptrB + i);
        cout << *(ptrC + i) << " ";
        if((i+1) % 2 == 0) cout << endl;
    }

    return 0;
}

위의 예제에서는 포인터를 사용하여 2x2 행렬의 연산을 수행합니다. 포인터 연산을 통해 각 요소에 직접 접근하여 연산을 수행합니다.

배열과 포인터를 사용한 행렬 연산을 통해, 행렬 연산을 더욱 효율적으로 수행할 수 있습니다.

참고 자료