본문 바로가기
언어/C

[C] 함수

by merona99 2018. 9. 13.
반응형

C언어

-함수




*함수의 유형 4가지

1) 전달인자(o), 반환 값(o)

2) 전달인자(o), 반환 값(x)

3) 전달인자(x), 반환 값(o)

4) 전달인자(x), 반환 값(x)




<구조>




<전달인자나 반환 값이 존재하지 않는 경우>

1. 인자전달(o), 반환 값(x)



2. 인자전달(x), 반환 값(o)




*return의 두 가지 의미

1) 함수를 빠져나간다!

2) 값을 반환한다.




<함수의 정의와 선언>


int sum(int a, int b)라는 함수를 만들었다.


1. 함수를 먼저 선언해준다.

#include 아래에 해당함수의 첫머리에 ;만 붙이면 된다.




2. 함수선언을 하지않을 경우

함수를 메인함수보다 먼저 써준다.



*지역변수

=> 중괄호 내에 선언되는 변수는 모두 지역변수

-지역: 중괄호에 의해 형성되는 영역

-지역변수는 선언된 지역 내에서만 유효함.

-선언된 지역이 다르면 이름이 같아도 문제가 되지x





*전역변수

=> 어디서든 접근이 가능한 변수로써 중괄호 내에 선언되지 않음.

-프로그램의 시작과 동시에 메모리 공간에 할당되어 종료 시까지 존재

-별도의 값으로 초기화하지 않으면 0으로 초기화

-프로그램 전체 영역 어디서든 접근이 가능




&지역변수와 동일한 이름의 전역변수가 선언될 경우

-해당 지역 내에서는 전역변수가 가리워지고, 지역변로의 접근이 이뤄짐.




(되도록 전역변수의 선언은 자제할 것, 프로그램이 복잡해짐)





<재귀함수>


*구조

-자기 자신을 다시 호출하는 함수


근데 아무런 조건이 없게되면 무한루프에 빠질 수  있다.

그래서 if를 사용해 조건을 넣어줘서 원하는 만큼만 반복되도록 만들어 줘야 한다.



*재귀의 탈출조건 추가


*결과





//답답한 날.

반응형

'언어 > C' 카테고리의 다른 글

[C] scanf/ 수학함수 (C언어정석_2)  (0) 2018.09.17
[C] switch/ if_esle (C언어정석_3)  (0) 2018.09.17
[C] 변수(C의정석_1)  (0) 2018.09.10
[C] 조건문  (0) 2018.08.31
[C] 반복문  (0) 2018.08.28

댓글