알고리즘교안 p113 2차원배열수정하기 질문
안녕하세요 사소할 수 있지만 궁금해서 질문올립니다!
p113 코드 전문->>

제가 먼저 113페이지 교안 코드 읽고 내용 이해한 다음에 교안 안보고 코드 타이핑해서 컴파일돌렸을때 위 사진의 코드처럼 6~13번째 줄 벡터 이름을 v, v2, v3로 작성했고, 잘 돌아갔습니다.
그런데 교안과 동일하게 작성했는지 다시 봤더니 교안은 6~13번째 줄이 아래 코드처럼 셋다 v로 들어가있더라구요?
void go(vector<vector<int>> &v){
v[0][0] = 100; }
void go2(vector<vector<int>> &v){
v[0][0] = 100; }
void go3(vector<int> v[10]){
v[0][0] = 100; }
그래서 오타인가 싶어서 제가 처음 작성했던것과 결과가 같은지 교안의 코드도 돌려봤는데 결과도 똑같이 나왔습니다..이거 왜그런건가요?? 오타가 아닌건가요?
go(v); go2(v2); go3(v3); -> 저는 이 부분 때문에 인자와 매개변수를 일치시키기 위해 함수선언 부분에도 v, v2, v3로 작성했던거였는데, 일치시키지 않고 다 v로 넣어도 결과가 같은 이유를 모르겠습니다
답변 1
0
안녕하세요 은진님 ㅎㅎ
go(v); go2(v2); go3(v3); -> 저는 이 부분 때문에 인자와 매개변수를 일치시키기 위해 함수선언 부분에도 v, v2, v3로 작성했던거였는데, 일치시키지 않고 다 v로 넣어도 결과가 같은 이유를 모르겠습니다
>>
매개변수는 어떠한 이름을 써도 괜찮습니다. 매개변수와 들어갈 때의 변수명을 통일해도 되지만 굳이 통일하려고 하지 않는게 좋습니다. 예를 들어
어떠한 함수 go()에 b라는 것도 들어가고 a라는 것도 들어간다면 2개의 함수를 구축해야 할까요? 아닙니다. 함수자체는 여러개의 매개변수를 커버할 수 있도록 구축하는게 좋습니다.
예를 print 함수를 만들어볼게요.
#include <bits/stdc++.h>
using namespace std;
void print(vector<int> v){
for(int i : v) cout << i << ' ';
cout << '\n';
}
int main() {
vector<int> v1 = {1, 2, 3};
vector<int> v2 = {4, 6, 6};
print(v1);
print(v2);
return 0;
}앞의 코드처럼 V1, V2라는 변수를 v라는 변수로 받다 보니 v1, v2에 따라 함수를 다시 재정의할 필요가 없죠?
이렇듯, 굳이 매개변수와 들어가는 변수명의 통일은 지키지 않는게 오히려 더 좋습니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
2-T 질문
0
6
0
코딩 살구클럽 가입 문의
0
67
2
코딩살구클럽 가입문의
0
69
2
3-K private case 질문
0
66
2
안녕하세요. 코딩살구클럽 문의드립니다!
0
78
2
7:41 듣다가 질문합니다
0
77
2
코드 리뷰 요청드립니다!
0
83
2
코딩살구클럽 계정 문의
0
79
2
SK하이닉스 대비 강의수강
0
217
3
코딩살구클럽 등록부탁드립니다.
0
78
2
7-F 재귀로 풀시 런타임애러
0
75
1
1-N 문제 질문입니다. (+ 채점오류)
0
82
2
코딩살구클럽 가입 확인 부탁드립니다.
0
86
2
직장인 코테 합격 공부방법 문의
0
127
2
코딩살구클럽 가입 방법
0
96
2
6-H 체점 관련 질문
0
74
1
채점서버 연결 관련 질문입니다
0
101
2
삼성 s직군
0
88
1
삼성 코테 없어짐
0
213
1
코딩살구클럽 가입부탁드립니다
0
87
2
코딩살구클럽 가입 요청 확인부탁드립니다
0
69
2
5-S 테스트 케이스 질문
0
78
2
코살 문제풀이 환경
0
88
2
2 - T 오큰수 문제가 있는 것 같습니다.
0
82
1





