Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
관리 메뉴

OnlyOne

Function&Array 본문

Control Engineering/C Programming

Function&Array

Taesan Kim 2024. 9. 4. 23:56

 

 

본 포스팅은 한동대학교 21학번 과학기술전문사관 후보생 최윤석 선배님의 C언어 교육자료로 제작되었음을 알려드립니다. 감사합니다.

Function&Array

 

Intro

*Function

 

함수란 코드 내부에서 반복되는 구문이나 특정 의미가 있는 기능을 가지는 코드를 모아두는 것이다.

반환타입 함수이름(인자자료형1 인자1, 인자자료형2 인자2, …)
{
	코드
 	return 함수반환값;
}

 

Function&Array

 

1. 배열이 인자로 들어갔을 때는 배열의 주솟값이 전달된다.

void array_input(int array[], int size) //배열의 주솟값이 전달되므로, 배열의 크기를 같이 받는다.
{
 	...
}

 

ex)

void test(int array[5])
{
 	printf("%d\n", sizeof(array));
}
//8(64bit 운영체제) or 4(32bit 운영체제)

이전에 sizeof를 이용한 배열 크기 측정은 함수에서는 불가능하다!

 

2. 배열은 반환할 수 없다.

int[] return_array()
{
 	int array[5] = {1, 2, 3, 4, 5};
 	return array;
}//빌드에러 발생

 

배열 반환

배열을 반환하기 위해서 포인터로 입력된 배열로 직접 값을 수정해야 한다.

#include <stdio.h>

void set_array(int dst[5])
{
 	dst[0] = 1;
}

int main()
{
 	int array[5] = {0};
 	printf("Before\n");
 	for(int i = 0; i < 5; i++)
 	printf("%d\n", array[i]);
    
 	set_array(array);
 	
    printf("After\n");
 	for(int i = 0; i < 5; i++)
 	printf("%d\n", array[i]);
}

 

일반적으로 입력으로 들어가는 배열은 const 키워드를 추가하여 함수 내에서 변하지 않음을 알려준다.

#include <stdio.h>

void set_array(const int src[5], int dst[5]) //반환용 배열
{
 	for(int i = 0; i < 5; i++)
 		dst[i] = src[i] + 1;
}
int main()
{
 	int array[5] = {0};
 	int result[5];
 	set_array(array, result);
 
 	for(int i = 0; i < 5; i++)
 		printf("%d\n", result[i]);
}

 

'Control Engineering > C Programming' 카테고리의 다른 글

Preprocessor  (0) 2024.09.05
Memory&Pointer  (0) 2024.09.05
배열(Array) 기초  (0) 2024.09.04
Practice[MAF]  (1) 2024.09.04
Practice[Integral]  (0) 2024.09.04