iOS/정보처리기사

[정보처리기사] C언어 - 함수의 기본 (swap함수 예제)

Chafle 2022. 6. 20. 23:05
반응형
함수란?

 

반복적인 수행을 정의해 놓은 작은 프로그램 단위

 

 

함수의 구조

 

반환타입 함수명(인자) {

수행 작업들

}

 

 

 

함수의 선언과 사용

 

int sum( int a, int b)

{

int c = a+b;

return c;

}

int data = sum(10, 20);

printf("%d", data);

 

 

 

 

ex.

 

#include<stdio.h>

void swap(int a, int b) {

int temp;

temp = a;

a = b;

b = temp;

}

 

int main(void){

int k, j;

k = 3;

j = 2;

swap(k,j);

printf("k = %d, j = %d", k, j);

return 0;

}

 

 

 

반응형

 

 

 

해설

 

k = 3이고

j = 2인데

swap 함수를 호출한다.

 

3,2 가 int a, int b 로 선언됐으므로

a = 3, b =2 이다.

temp라는 공간에 a인 3을 넣고

a에 b의 값인 2를 할당하고

b값에 temp공간에 있는 3을 할당한다

결론 a, b가 위치가 바뀐다고 해서 swap함수인데.........!

 

이대로 함수가 종료가 됐기 때문에

함수에서 사용했던 전역변수와 정적변수를 제외한 모든 변수는 폐기가 된다.

return값도 없기 때문에(void는 리턴값이 없다는 것)

함수는 선언됐으나 변수가 폐기되어 k값과 j값의 변화는 없다.

 

 

k = 3

j = 2

반응형