반응형
int main()
{
int* ptr = nullptr;
int** ptrptr = nullptr;
int value = 5;
ptr = &value;
ptrptr = &ptr;
cout << ptr << " " << * ptr << " " << & ptr << endl;
cout << ptrptr << " " << *ptrptr << " " << &ptrptr << endl;
cout << **ptrptr << endl;
return 0;
}
이중포인터를 사용하여 변수의 주소를 저장하고 출력하는 간단한 예제입니다.
이건 설명을 하려면 너무 복잡해지기 때문에 본인이 보고서 이해를 해야 합니다. 포인터의 개념을 찬찬히 상기해보면서 보면 이해가 될 것입니다.
#include<iostream>
#include <limits>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
const int row = 3;
const int col = 5;
const int s2da[row][col] =
{
{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15}
};
int* r1 = new int[col] {1, 2, 3, 4, 5};
int* r2 = new int[col] {6, 7, 8, 9, 10};
int* r3 = new int[col] {11, 12, 13, 14, 15};
int** rows = new int* [row] {r1, r2, r3};
for (int r = 0; r < row; ++r)
{
for (int c = 0; c < col; ++c)
cout << rows[r][c] << " ";
cout << endl;
}
delete[] r1;
delete[] r2;
delete[] r3;
delete[] rows;
return 0;
}
위 코드는 다차원 배열을 생성하고 출력하는 c++프로그램입니다.
먼저 row와 col 상수는 3과 5로 초기화된 두 개의 상수를 선언합니다. 이는 이차원 배열의 행과 열의 크기를 의미합니다. 그리고서 3x5크기의 이차원 배열을 초기화하고자 s2da를 사용했으며 각 요소는 {}를 통해 설정이 됩니다.
r1, r2, r3는 각각 5개의 정수를 저장할 수 있는 동적으로 할당된 배열이며 이는 1 ~15까지의 값을 갖는 행을 나타냅니다. rows 이차원 배열은 각각의 요소가 동적으로 할당된 r1, r2, r3를 가리키며 rows 배열을 행렬 형식으로 출력하는 반복문이 있습니다.
반응형
'IT 프로그래밍 > C++' 카테고리의 다른 글
참조에 의한 호출 c++ (0) | 2024.04.01 |
---|---|
[따배시 6.20~21] array 소개, vector 소개 (0) | 2024.03.30 |
[따배시 6.17~18] for-each 반복, void 포인터 (0) | 2024.03.30 |
[따배시 6.15 ~ 6.16] 참조, 포인터와 참조의 멤버 선택 연산자 (0) | 2024.03.30 |
[따배시 6.14] 참조 변수 (0) | 2024.03.30 |