교안 36p void 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요.
좋은 강의 감사합니다.
교안 36p :void:리턴하는 값이 없다" 코드를
#include <bits/stdc++.h>
using namespace std;
int ret = 1;
void a() {
ret =2;
cout<<ret<<"\n";
return;
}
int main(){
a();
cout<<ret<<"\n";
return 0;
}
로 수정했습니다. 마지막에 cout만 추가한 것 입니다.
그러면 제 생각에는 값이 2 1 이 나와야합니다.
int ret =1 이 main 함수 밖에서 선언된 전역변수이고 a()함수에서 ret = 2라고 했지만 아무것도 반환하지 않았고, a 함수 내에서만 ret =2 라는 값을 가질거라고 생각했습니다.
하지만 디버깅 결과 2 2 가 나왔는데 왜인지 모르겠습니다ㅜㅠ
답변 1
0
안녕하세요 ㅎㅎ
전역변수 int타입의 변수를 함수에서 수정한다면 해당 변수는 해당 함수에서 변환된 값으로 변환되어야 합니다.
해당 부분의 코드를 설명하자면 다음과 같습니다.
코드 설명
코드를 설명하자면 다음과 같습니다.
ret는 전역 변수로 선언되며, 초기 값은 1입니다. 전역 변수는 모든 함수에서 접근 및 수정이 가능합니다.
void a()는 반환 값이 없는 함수입니다.
함수 본문에서 전역 변수 ret의 값을 2로 변경하고 cout << ret << "\n";는 변경된 ret 값을 출력합니다. return;은 함수의 끝을 명시적으로 표시합니다. void 함수에서는 생략해도 됩니다.
참고로 다음과 같이 void가 아닌 int타입으로 해도 똑같이 나옵니다.
#include <bits/stdc++.h>
using namespace std;
int ret = 1;
int a() {
ret =2;
cout<<ret<<"\n";
return 0;
}
int main(){
a();
cout<<ret<<"\n";
return 0;
}
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
답변 감사합니다.
저는 함수 a() 내에서 전역 변수를 바꿀 시 그 함수 내에서만 ret=2이고 전역 변수는 바뀌지 않는다고 생각했는데 이것이 아니라 전역변수로 선언한 ret =1 을 a()함수에서 ret =2로 변경하면 main()함수에도 영향이 가는거 맞나요?
.
.
0
저는 함수 a() 내에서 전역 변수를 바꿀 시 그 함수 내에서만 ret=2이고 전역 변수는 바뀌지 않는다고 생각했는데 이것이 아니라 전역변수로 선언한 ret =1 을 a()함수에서 ret =2로 변경하면 main()함수에도 영향이 가는거 맞나요?
>> main함수가 아니라 전역변수에 영향 -> 해당 전역변수를 main함수에서 출력시 해당 값이 바뀌게 됩니다.
4-F 경우의 수 질문입니다.
0
9
1
코딩살구클럽 가입이 안됩니다.
0
30
0
살구 클럽에 대한 질문있습ㄴ디ㅏ
0
34
1
교안 158페이지 문의드립니다
0
34
2
코딩살구클럽 관련 건의사항
0
84
1
코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다
0
35
1
진행 방법 질문드립니다!
0
70
2
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
60
2
2주차 개념#12 트리 순회
0
32
2
백준사이트가 종료된다고 합니다.
0
296
2
백준 서비스 종료
9
909
1
sk 하이닉스 코테 대비
0
375
2
3-G 최댓값 질문
0
52
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
84
2
3-I 코드 질문드립니다.
0
63
2
3-N 질문 있습니다.
0
68
2
학습방법
0
103
2
4-H 질문 있습니다 (코드 리뷰)
0
67
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
176
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
70
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
65
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
52
2
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
0
69
2
함수별 시간복잡도
0
75
2





