본문 바로가기
공부/c++

#9 배열을 매개변수로 넘기기 | c++

by 심심한 뾰 2021. 8. 26.
반응형

#call-by-reference

일차원 배열

1.

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
//call-by-reference
 
void printArr(int arr[4]){
  for (int i = 0; i < 4; i++){
    std::cout << arr[i] << " ";
  }
}
 
int main(){
  int arr[4= {1,2,3,4};   //로컬변수
  printArr(arr);
}
cs

arr은 &arr[0]과 같은 뜻이므로, 주소값을 사용해 배열을 매개변수로 넘기게 된다.

 

2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
//call-by-reference
 
void printArr(int *arr){
  for (int i = 0; i < 4; i++){
    std::cout << arr[i] << " ";   //arr[i] == *(arr+i)
  }
}
 
int main(){
  int arr[4= {1,2,3,4};   //로컬변수
  printArr(arr); //arr == &arr[0]
}
 
cs

위 코드와 같이 주소값을 활용해 배열을 매개변수로 넘기는 코드이다.

 

이차원 배열

1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
//call-by-reference
 
void printArr(int arr[2][3]){
  for (int i = 0; i < 2; i++){
    for (int j = 0; j < 3; j++){
      std::cout << arr[i][j] << " ";    //arr[i] == *(arr+i)
    }
    std::cout << std::endl;
  }
}
 
int main(){
  int arr[2][3= {{1,2,3},{4,5,6}};    //로컬변수
  printArr(arr); //arr == &arr[0]
}
cs

 

출력 결과

일차원 배열의 첫번째 코드와 똑같은 방식으로 짠 코드이다.

 

 

2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
//call-by-reference
 
void printArr(int (*arr)[3]){
  for (int i = 0; i < 2; i++){
    for (int j = 0; j < 3; j++){
      std::cout << arr[i][j] << " ";    //arr[i] == *(arr+i)
    }
    std::cout << std::endl;
  }
}
 
int main(){
  int arr[2][3= {{1,2,3},{4,5,6}};    //로컬변수
  printArr(arr); //arr == &arr[0]
}
cs

배열 포인터를 활용한 코드이다.

 

 

#전역변수 활용

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
 
int arr[4= {1,2,3,4};   //전역변수
 
void printArr(){
  for (int i = 0; i < 4; i++){
    std::cout << arr[i] << " ";
  }
}
 
int main(){
  printArr();
}
cs
출력 결과

추가로, 배열을 전역변수로 선언하면 main()함수에서도, printArr()함수에서도 사용할 수 있다.

 

 

출처(source) - 유튜브 두들낙서님

https://www.youtube.com/c/%EB%91%90%EB%93%A4%EB%82%99%EC%84%9C

 

두들낙서

C/C++ 강좌를 올리고 있고 다른 컨텐츠는 할 수도 있고 안 할 수도 있는 채널. ▶ 두들낙서 지식공유 서버 참가하기: https://discord.gg/y4SXcjU

www.youtube.com

c++ 최고의 강좌,,

반응형