반응형
#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++' 카테고리의 다른 글
#11 typedef (0) | 2021.09.20 |
---|---|
#10 배열을 매개변수로 넘기기 문제 | 띄어쓰기없이 출력하기 (0) | 2021.09.20 |
#8 재귀함수 | recursion | 팩토리얼 | c++ (0) | 2021.08.26 |
#7 prototype | 프로토타입 (0) | 2021.08.26 |
#6 call-by-value | call-by-reference (0) | 2021.08.26 |