오늘은 C언어 사용자 정의 함수와 변수에 대하여 알아보겠습니다.
1. 함수의 구조
- C언어는 mian 함수, 라이브러리 함수, 사용자 정의 함수가 있습니다.
- main 함수로 보면 함수는 반환형, 이름, 매개변수, 내부코드, 반환값(void는 생략)으로 구성됩니다.
- 함수의 반환형은 int, char, double 등 모두 가능하며 특별한 반환형이 없는 경우 void가 사용됩니다.
2. 사용자 정의 함수
- 위 쪽에서 함수의 선언을 하며 정의할 수 있지만 코드가 지저분해져 위에서는 선언, 아래서 정의를 합니다.
- 왼쪽과 오른쪽 2가지 예시를 보며 void형과 값을 반환하는 함수의 차이를 확인해보세요.
- 변수는 지역성을 가지기 때문에 타 함수에서 사용하기 위해서는 매개변수를 사용해야합니다.
2. 변수의 특성
- 지역변수: 해당 함수에서만 생성 및 소멸되며, 타 함수에서 접근 불가
- 전역변수: 프로그램 시작부터 생성되어 끝까지 존재, 모든 함수에서 접근 가능
- static변수: 프로그램의 시작부터 생성되어 끝까지 존재하나, 타 함수에서 접근 불가
* 그럼 귀찮지 않게 모든 변수를 전역변수로 지정하면 되지 않나요?
- 컴퓨터는 메모리가 제한되어 있어, 효율적인 메모리활용을 위해 적절한 변수 사용을 해야 합니다.
* 타 함수에서 main함수의 변수를 수정하기 위해서는 매개변수 앞에 &를 붙여줘야합니다.
- scanf가 아주 좋은 예시입니다. &는 주소값을 의미하고 변수명만 작성하면 해당 값만 불러와 변경할 수 없습니다.
* 레퍼런스(&)란?
- 래퍼런스는 주소값을 의미합니다.
- 아래 예시를 확인해보세요(실제 주소값은 정수형이 아니지만 100이라고 가정합니다.)
▷ A는 변수의 값만 가져와서 출력하게되고, &A는 변수의 주소 값을 가져와서 출력하게 됩니다.
'전공공부 > C, C++' 카테고리의 다른 글
[C] 8. C언어 배열과 포인터의 연관 (36) | 2024.02.23 |
---|---|
[C] 7. C언어 배열 및 포인터 (29) | 2024.02.20 |
[C] 6. C언어 반복문 및 분기(for, while, break, continue) (37) | 2024.01.05 |
[C] 5. C언어 조건문(if else, switch case) (34) | 2023.12.19 |
[C] 4. C언어 입출력 함수(printf, scanf 등) 서식문자, ASCII 코드 (28) | 2023.12.11 |