본문 바로가기
C++/기초(두들낙서)

[C++기초]이차원 배열을 범위기반 for문으로 구현하기

by Meaning_ 2022. 1. 12.
728x90
반응형

1.범위기반 for문을 사용하여 이차원 배열을 출력해보세요.

 

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include<string>
 
using namespace std;
 
 
 
int main() {
    int arr[2][3= { {1,2,3},{4,5,6} };
 
}
 
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include<string>
 
using namespace std;
 
 
 
int main() {
    int arr[2][3= { {1,2,3},{4,5,6} };
 
    for(int(&ln)[3]:arr){
        for(int &col:ln){
             cout<<col<<' ';
        }
        cout<<endl;
    }
 
}
 
cs


11번째 줄에 for(int(&ln)[3]:arr){ <-- 이 코드가 배열포인터에서 이중 for문 돌리는걸 레퍼런스 변수를 사용한 것이라 볼 수 있다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include<string>
 
using namespace std;
 
 
 
int main() {
    int arr[2][3= { {1,2,3},{4,5,6} };
 
    for(int(&ln)[3]:arr){
        for(int &col:ln){
             cout<<col<<' ';
        }
        cout<<endl;
    }
    for(int(*ln)[3]=arr;ln<arr+2;ln++){
        for(int *col=*ln;col<*ln;col++){
            cout<<col<<' ';
        }
        cout<<endl;
    }
 
}
 
cs

12번째 줄에 

for(int &col:ln){

 

여기서 왜 *ln을 써주지 않는가하는 궁금증이 생길 수 있는데, 이는 레퍼런스변수는 별표를 사용하지 않아도 레퍼런스 변수 자체가 가리키는 대상이기 때문이다. 

 

728x90
반응형

댓글