본문 바로가기
전공공부/C, C++

[C] 7. C언어 사용자 정의 함수, 변수의 특성(지역, 전역, static)

by 아임그류튜 2024. 1. 10.
반응형

오늘은 C언어 사용자 정의 함수와 변수에 대하여 알아보겠습니다.

 

1. 함수의 구조

  - C언어는 mian 함수, 라이브러리 함수, 사용자 정의 함수가 있습니다.

  - main 함수로 보면 함수는 반환형, 이름, 매개변수, 내부코드, 반환값(void는 생략)으로 구성됩니다. 

  - 함수의 반환형은 int, char, double 등 모두 가능하며 특별한 반환형이 없는 경우 void가 사용됩니다.

 

2. 사용자 정의 함수

  - 위 쪽에서 함수의 선언을 하며 정의할 수 있지만 코드가 지저분해져 위에서는 선언, 아래서 정의를 합니다.

  - 왼쪽과 오른쪽 2가지 예시를 보며 void형과 값을 반환하는 함수의 차이를 확인해보세요.

  - 변수는 지역성을 가지기 때문에 타 함수에서 사용하기 위해서는 매개변수를 사용해야합니다.

 

2. 변수의 특성

  - 지역변수: 해당 함수에서만 생성 및 소멸되며, 타 함수에서 접근 불가

  - 전역변수: 프로그램 시작부터 생성되어 끝까지 존재, 모든 함수에서 접근 가능

  - static변수: 프로그램의 시작부터 생성되어 끝까지 존재하나, 타 함수에서 접근 불가

 

* 그럼 귀찮지 않게 모든 변수를 전역변수로 지정하면 되지 않나요?

  - 컴퓨터는 메모리가 제한되어 있어, 효율적인 메모리활용을 위해 적절한 변수 사용을 해야 합니다.

 

*  타 함수에서 main함수의 변수를 수정하기 위해서는 매개변수 앞에 &를 붙여줘야합니다.

  - scanf가 아주 좋은 예시입니다. &는 주소값을 의미하고 변수명만 작성하면 해당 값만 불러와 변경할 수 없습니다.

 

*  레퍼런스(&)란?

  - 래퍼런스는 주소값을 의미합니다.

  - 아래 예시를 확인해보세요(실제 주소값은 정수형이 아니지만 100이라고 가정합니다.)

    ▷ A는 변수의 값만 가져와서 출력하게되고, &A는 변수의 주소 값을 가져와서 출력하게 됩니다.

 

반응형