브리프유 브리프유 로그인
자청의 유튜브 추출기

유튜브 영상의 자막과 AI요약을 추출해보세요

AI 채팅

BETA

C언어 핵심! Call by Value/Reference 10분 마스터 (소스코드 제공)

게시일: 작성자: 자청의 유튜브 추출기

C 언어 기초 다지기: 변수, 함수, 그리고 포인터까지!

1. #include <stdio.h>: 라이브러리 불러오기

  • #include <stdio.h>는 컴퓨터한테 "야, 나 기본적인 입력이랑 출력하는 거 좀 쓸래!" 하고 알려주는 거야.
  • stdio는 standard input output의 줄임말이고, h는 header 파일이라는 뜻이지.
  • 이걸 불러와야 printf (화면에 글씨 보여주기)랑 scanf (키보드로 입력받기) 같은 함수를 쓸 수 있어.

2. main 함수: C 언어의 시작점

  • 모든 C 언어 프로그램은 main 함수에서 시작해.
  • int main() { ... } 이렇게 생겼는데, int는 이 함수가 끝나고 숫자(정수)를 돌려줄 거라는 뜻이야.

3. 변수: 데이터를 담는 상자

  • int num; 이렇게 쓰면, num이라는 이름의 상자를 하나 만드는 거야. 이 상자에는 정수(10진수 숫자)를 담을 수 있어.
  • 이 상자는 컴퓨터 메모리 어딘가에 만들어지고, 그 위치를 주소라고 해.
  • &num 이라고 쓰면 num 상자의 주소를 알 수 있어. 이걸 10진수로 보여주려면 %d를 써서 printf("%d", &num); 이렇게 하면 돼.
  • num = 10; 이라고 쓰면, num 상자에 숫자 10을 넣어주는 거야. C 언어에서 =는 '같다'가 아니라 '오른쪽 값을 왼쪽 상자에 넣어줘!'라는 뜻이야. 이걸 대입 연산자라고 해.
  • 만약 a = 10 + 4 * 2; 이렇게 쓰면, 컴퓨터는 곱하기(*)를 먼저 계산해서 4 * 2 = 8을 구하고, 그다음 더하기(+)를 해서 10 + 8 = 18을 구한 다음, 마지막으로 =를 만나서 a 상자에 18을 넣어줘. =는 항상 제일 마지막에 계산돼.

4. 함수 호출: 다른 함수를 사용하는 방법

  • callByValue(num); 처럼 함수 이름을 쓰고 괄호 안에 값을 넣어주면, 그 함수를 실행하라는 뜻이야. 이걸 함수 호출이라고 해.
  • callByValue 함수 안에서 num이라는 변수를 사용하면, 이건 main 함수에 있는 num이랑은 다른, 새로운 num이야. 이름은 같지만 완전히 다른 상자라고 생각하면 돼.
  • 그래서 callByValue 안에서 num의 값을 바꿔도, main 함수에 있는 num의 값은 그대로 유지돼. 이걸 값에 의한 호출 (Call by Value)이라고 해. 마치 복사본을 넘겨주는 것과 같지.

5. 포인터: 주소를 담는 특별한 변수

  • int *ptr; 처럼 *를 붙여서 변수를 만들면, 이건 포인터 변수가 돼. 포인터 변수는 다른 변수의 주소를 담는 상자야.
  • ptr = &num; 이라고 쓰면, num의 주소를 ptr이라는 포인터 변수에 넣어주는 거야.
  • printf("%d", ptr); 라고 하면, ptr에 담긴 주소가 화면에 찍혀.
  • printf("%d", *ptr); 라고 하면, ptr이 가리키는 주소에 있는 값을 찍어줘. 이걸 역참조라고 해. 마치 포인터가 가리키는 곳으로 가서 값을 가져오는 거지.
  • *ptr = 100; 이라고 하면, ptr이 가리키는 주소에 있는 값(원래 num의 값)을 100으로 바꿔주는 거야.

6. 주소에 의한 호출 (Call by Reference): 값을 직접 바꾸기

  • callByReference(&num); 처럼 함수를 호출할 때 &를 붙여서 주소를 넘겨주면, 함수 안에서 그 주소를 이용해서 원래 변수의 값을 직접 바꿀 수 있어.
  • 함수 안에서는 이 주소를 받기 위해 포인터 변수를 사용해야 해.
  • callByReference 함수 안에서 *ptr = 100; 처럼 포인터를 사용해서 값을 바꾸면, main 함수에 있는 num의 값도 함께 바뀌게 돼. 마치 직접 가서 값을 고치는 것과 같지.

7. 상수 (Constant): 변하지 않는 값

  • const double PI = 3.14159; 처럼 const를 붙이면, 이 변수는 프로그램이 실행되는 동안 절대 바뀌지 않는 상수가 돼.
  • PI라고만 써도 3.14159라는 값이 자동으로 들어가고, 이걸 다른 값으로 바꾸려고 하면 오류가 나.

핵심 정리:

  • #include <stdio.h>는 printf, scanf 같은 함수를 쓰기 위해 필요해.
  • main 함수에서 프로그램이 시작돼.
  • 변수는 데이터를 담는 상자이고, &를 붙이면 주소를 알 수 있어.
  • =는 값을 넣어주는 대입 연산자야.
  • 함수 호출 시 값을 넘겨주면 (Call by Value), 함수 안에서 값을 바꿔도 원래 값은 그대로야.
  • 함수 호출 시 주소를 넘겨주면 (Call by Reference), 함수 안에서 포인터를 이용해 원래 값을 바꿀 수 있어.
  • const를 붙이면 변하지 않는 상수가 돼.

최근 검색 기록