아까 첫번째 질문 답해주셔서 감사합니다.
비전공자라서 물어볼 사람이 없던 나머지 여기에 묻게되네요 ㅜ
int ReadNum(void) //인자 전달(X), 반환 값 (O)
{
int num;
scanf("%d",&num);
return num;
}
위 함수는 반환값은 있지만, 인자전달을 하지 않는 함수로,
매개변수쓰는 자리에 void 가 써져있는 함수 입니다.
1) 질문
그런데 scanf 가 쓰였기 때문에
4라고 적는게 인자 전달 아닌가요?
그럼 인자전달하는 함수라고 볼 수 있지 않을까요 ?
2) 그럼 정확하게 인자 전달은 어떤 경우를 말하는 거죠?
#include <stdio.h>
int NumberCompare(int num1, int num2);
int main(void)
{
printf("3과 4중에서 큰수는 %d 이다." NumberCompare (3,4));
return 0;
}
int NumberCompare(int num1, int num2)
{
...
}
위 파란색 부분을 통해 인자전달이 이루어졌다라고 보는 건가요?
죄송합니다 ㅜ 다시 한번만 알려주세요
scanf가 인자를 받는거고 ReadNum은 인자를 받은게 아님
아 그럼 scanf 가 인자를 받은 것일뿐이지,
네 '그렇게 해야' 인자 전달이 됐다고 보는겁니다. 그것 외에 아까 물어보신 printf 라던지 이번에 말하신 scanf 같은게, 함수 인자 전달이나 반환으로 치지 않는데, 분명히 외부와 영향을 주고 받는 것이기 때문에 전문적으로는 '사이드 이펙트'라고 합니다
scanf 를 포함하는 readnum이 인자 전달하는 함수가 아니라는거구나 ..