작성
·
448
0
안녕하세요 오늘도 따라가고 있는 수강생입니다!
4659번 문제 정답코드에서 궁금한점이 2가지가 있어서 질문드려요!
교안에서 prev는 변수선언이 불가능하다고 했는데 왜 <bits/stdc++.h>에서 #define하지 않아도 실행이 가능한것인지.
bool isVowel 함수에서 그 함수가 모음인지 아닌지를 판단하는 함수인건 이해했는데 조건이 return되는 것이 어떤 문법 인지를 잘 모르겠습니다 ㅜㅜ
답변 3
2
안녕하세요 지나가는 수강생입니다!
1. 코드에서 prev는 지역 변수로 선언돼서 컴파일할 때 지역 변수로 매칭이 돼서 에러가 없는 것입니다.
반면 전역변수로 선언하시면 컴파일러가 <bits/stdc++.h>에 있는 prev와 전역으로 선언된 prev중 어느 것으로 해석할지 모르기 때문에
컴파일 에러가 납니다.
예를 들면
#include <bits/stdc++.h>
using namespace std;
int a = 1;
int main()
{
int a = 0;
cout << a << endl;
}
이 코드가 에러 없이 0을 출력하는 것과 같은 것이라고 생각하시면 됩니다.
2. bool b = (idx == 'a' || idx == 'e' || idx == 'i' || idx == 'o' || idx == 'u');
return b;
와 같다고 생각하시면 됩니다.
선생님의 코드는 연산한 결과를 바로 리턴하는 것이구요.
1
재욱님이 잘 설명해주셨네요 ㅎㅎ 2번을 좀 더 첨언하자면 1 == 1은 어떤 값을 반환할까요? true죠? 그러한 값을 반환하다고 이해하시면 됩니다.
좀 더 풀어쓰자면 bool a = 1 == 1; return a; 이렇게 되어야 겠지만 retrun 1 == 1로도 가능합니다.
감사합니다.
0