1.함수의 호출과 인라인의 차이점
호출은 정의해논 함수를 생성(화살표로 하면 생성해논 함수에 들어갔다 나옴)
인라인은 정의해논 함수의 코드를 복사한다. 인라인이 속도는 더 빠른데 많이 하면 코드가 늘어난다.
-> 이거 맞나요?
2. 혼자 순환공부하는데 몰겠어염
#include(iostream>
using namespace std;
long fac(int n); -> 이거 왜써요?
int main()
{
int x;
long f;
cout <<"정수를 입력하시오:" ;
cin >> x;
f= fac(x);
cout << x <<"!은" <<f<<" 입니다."<< endl;
return 0;
}
long fac(int n)
{
cout <<" fac(" << n << ")" << endl; -> 왜 (n)이라고 안쓰고 (" << n << ")이래요?
if (n<=1) return 1;
else return n*fac(n-1);
}
답은
fac(3)
fac(3)
fac(2)
fac(1)
3!은 6입니다.
출력값:f(3)
반환값:3(f(2))- 출력값:f(2)
반환값:1(f(1)) -> 출력값:f(1)
반환값:1
이렇게 나오잖아요.
그럼 endl; 있으니까
출력값을 차례대로
f(3)
f(2)
f(1)
쓰고 반환값은 오른쪽 부터 대입해서 3*2*1= 6 나오는데 왜 이렇게 되는지 모르겠어요.
반환값과 출력값을 구분못하겠어여;
다른 예를 가지고 오자면
이것저것 생략해서
int s(int i)
{
cout << "나다"<<endl;
return i*i;
}
int main(void)
{
cout<< s(3) << endl;
return 0;
}
여기선
나다
9
나오잖아요. cout 값과 return값 둘다 출력되서
근데 위에 예제에서는 왜 출력값만 따로모으로 반환값따로모아서 해여?
얼마 줄거냐
반환값속에 출력값이랑 반환값이 들어있으면 출력값은 반환값을 빠져나오고 반환값은 지들끼리 곱하는거예여?
빡치네염 ㅋ
c++
프로그래머가 아닌 유저로서의 삶을 살아야겠어염
조금만더 공부하면 다 이해할것갘으 [i]
이해할거 같은 질문이라 답안드려두 될듯 [i]
ㄴ 왜여 갈켜주세여 이제 배열나가야 되는데 반드시 순환을 익혀두고 넘어가라네여 책이
조ㅈ뉴비지만 아는거 대답해줌...
메인함수 전에 long fac(int n);을 쓰는 이유는 컴파일러가 코드를 읽는 순서가 위에서부터 아래로이기 때문. fac 함수를 정의하는건 몸체 뒤에서 해도 되는데, 몸체에 나온 fac가 너가 선언한 함수인지 아닌지 컴파일러는 모름. 그래서 몸체 앞에서 fac함수를 나중에 정의해줄거라고 일단 말해두는 역할임.
그 밑에 질문은 질문이 뭔지도 모르겠네...
fac 함수를 잘 읽고 무슨 역할인지 이해한 다음에 메인함수를 잘 읽고 어떻게 쓰인건지 이해하면 될듯. 시발 이건 기본이 안돼있는거같은데? 책 더봐
1번 코드가 짧을 때도 있다 [i]