CS50 x edwith 강의를 들으며 정리한 공부 포스팅입니다.
핵심 개념
- 함수
- 추상화
- 매개변수
- return
- 지역변수
- 전역변수
함수
- 특정 목적을 위해 만들어진 재사용 가능한 코드
추상화
- 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것.
- 프로그램을 여러 개의 함수로 만들면 코드를 조직화하고 간단하게 만들수 있음
함수의 문법
#include
void sayHi(void)
{
printf("Hi!\n");
}
int main(void)
{
sayHi();
sayHi();
}
-
함수의 첫 행(void sayHi(void))은 세 부분으로 나눠져 있음
-
첫째, 반환 자료형
- 함수를 호출한 쪽에 출력값으로 반환해줄 값의 자료형
- 반환할 값이 없을 경우 반환할 값이 비어있다는 의미로 void를 씀.
-
둘째, 함수의 이름
- 공백이 있으면 안되고, C에서 이미 사용하는 키워드는 쓸수 없음.
-
셋째, 괄호안에 인자라고도 알려진 함수의 매개변수(parameter)를 넣어줌
- 함수의 입력값이며 입력값이 없으면 void를 씀.
-
이 첫 행 뒤에는 중괄호로 묶인 함수 코드가 작성됨.
-
sayHi 함수는 “Hi\n”을 화면에 출력하는 함수
-
main함수 안에서 sayHi 함수가 두 번 호출되고 있음(10, 11번째 줄)
-
sayHi함수는 매개변수를 받지 않기 때문에, 함수 호출시 괄호 안에 인자(argument)를
작성하지 않는다
-
실행결과 “Hi\n”이 화면에 두 번 출력됨.
매개변수와 반환값
#include
int square(int x)
{
return x * x;
}
int main(void)
{
printf("%d\n", square(2));
printf("%d\n", square(4));
printf("%d\n", square(8));
}
-
square함수는 x라는 하나의 정수를 매개변수로 받고 함수를 호출된 곳으로 정수를 반환
-
함수의 반환값을 return이라는 단어로 명시
- square 함수는 입력값 x를 자신과 곱한 후 값을 반환
-
보통 return이 쓰여진 행이 함수의 마지막 행
-
main함수에서 square함수는 세 번 호출되는데 매번 호출될 때마다 함수가 실행되고
매개변수에 대한 제곱 값이 함수를 호출한 곳으로 반환됨.
범위(Scope)
-
지역변수
-
함수 안에서 변수를 정의하거나 매개변수로 전달된 것들은 그 함수 안(지역)에서만
유효함.
-
-
위 코드에서 보면 x라는 변수는 main함수의 범위(Scope)안에 존재하지 않고
오직 square함수의 범위 안에서만 존재.
-
같은 논리로, main 함수에 정의된 어떤 변수도 square함수 내에서 접근할수 없음.
Comments