inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

C++알고리즘 교안

교안 36p void 질문입니다.

해결된 질문

115

sunnyside0102

작성한 질문수 11

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 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 가 나왔는데 왜인지 모르겠습니다ㅜㅠ

c++ 코딩-테스트

답변 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

sunnyside0102

답변 감사합니다.

저는 함수 a() 내에서 전역 변수를 바꿀 시 그 함수 내에서만 ret=2이고 전역 변수는 바뀌지 않는다고 생각했는데 이것이 아니라 전역변수로 선언한 ret =1 을 a()함수에서 ret =2로 변경하면 main()함수에도 영향이 가는거 맞나요?

.

.

0

큰돌

저는 함수 a() 내에서 전역 변수를 바꿀 시 그 함수 내에서만 ret=2이고 전역 변수는 바뀌지 않는다고 생각했는데 이것이 아니라 전역변수로 선언한 ret =1 을 a()함수에서 ret =2로 변경하면 main()함수에도 영향이 가는거 맞나요?

>> main함수가 아니라 전역변수에 영향 -> 해당 전역변수를 main함수에서 출력시 해당 값이 바뀌게 됩니다.

문제를 고민하는 시간 관련

0

9

2

코딩살구클럽

0

14

1

코딩살구클럽 문의

0

26

2

코딩살구클럽 승인

0

31

2

DP 경우의 수 설명이 이해가 되지 않습니다.

0

32

2

3-F 채점 관련 질문

0

29

1

BFS, DFS 활용이 되는 상황에서의 방향성

0

32

2

코딩살구클럽 승인

0

41

2

코딩살구클럽승인

0

38

3

코딩살구클럽 승인

0

50

2

3-D 관련 질문

0

35

2

코살구 회원가입 문의

0

45

2

코살구 로그인 문제

0

65

2

3-A 문제 풀이 관련 질문

0

56

3

2-O 질문 있습니다

0

38

2

2-T 문제에 관한 질문

0

40

2

코딩 살구 클럽 접속 및 사용방법 문의

0

63

2

안녕하세요~. 현재 코살코딩클럽 사이트가 접속이 안됩니다~

0

64

2

코딩살구클럽 로그인문제

0

78

3

코딩 살구 클럽 로그인 문제

0

84

2

2-J 채점관련 질문

0

66

3

코딩 살구 클럽 Python 지원 가능 여부

0

77

1

살구클럽 아이디 없음 문제

0

76

1

1-O 코딩살구클럽 채점관련 질문

0

60

2