반응형
보통 C언어 연습시 함수에 전달인자로 일반 변수를 사용했지만, 이번엔 배열을 전달한다.
배열이름 아래 예를 들면 arr1[] 에서, arr1 자체는 포인터이다. 즉 arr1을 출력하면 해당 배열값들이 시작하는 곳에 대한 주소를 가리키고 있다.
그래서 배열을 함수 인자로 받을 때 자료형을 포인터로 써야 한다. 아래와 같이 int* param
아래 예시는 배열을 함수의 인자로 받아서 그 배열을 출력하는 예제이다.
#include <stdio.h>
/*
배열을 함수의 인자로 전달.
참고사항,
배열내부 index 갯수를 구하는 방법
-> sizeof(arr1)/sizeof(int) 이런식으로 구하면 된다.
*/
// 배열인자를 받아 배열 내부를 표시해주는 함수 (포인터를 이용)
void ShowArayElem(int* param, int len)
{
int i;
for (i = 0; i < len; i++)
printf("%d ", param[i]);
printf("\n");
}
int main()
{
int arr1[3] = { 1,2,3 };
int arr2[5] = { 4,5,6,7,8 };
// 배열내부의 index 갯수를 구하는 방법.
ShowArayElem(arr1, sizeof(arr1) / sizeof(int));
ShowArayElem(arr2, sizeof(arr2) / sizeof(int));
return 0;
}
배열 주소와 해당 배열의 사이즈를 인자로 받아서 출력 테스트
반응형
그러나 배열을 함수에 전달하는 방법은 아래와 같이 쓸 수도 있다. (위와 동일한 기능)
즉 포인터 (* param) 이 아닌, param[ ] 이러한 형태로 배열을 전달 할 수 있다는 것이다.
이는 둘다 동일한 뜻이며, param[ ] 로 작성하면, 코드를 읽는 사람이 "아~ 배열을 전달하구나~"하며 좀 더 가독성을 향상시킬 수 있다.
#include <stdio.h>
/*
배열을 함수의 인자로 전달.
참고사항,
배열내부 index 갯수를 구하는 방법
-> sizeof(arr1)/sizeof(int) 이런식으로 구하면 된다.
*/
// 배열을 인자로 받는 다른 방법.
// 인자로 배열을 전달 받는다는 느낌을 강하게 어필하기 위해.
void ShowArayElem(int param[], int len)
{
int i;
for (i = 0; i < len; i++)
printf("%d ", param[i]);
printf("\n");
}
int main()
{
int arr1[3] = { 1,2,3 };
int arr2[5] = { 4,5,6,7,8 };
// 배열내부의 index 갯수를 구하는 방법.
ShowArayElem(arr1, sizeof(arr1) / sizeof(int));
ShowArayElem(arr2, sizeof(arr2) / sizeof(int));
return 0;
}
반응형
'C언어 \ C++' 카테고리의 다른 글
[C언어] C언어 야구게임 예제 코드 (0) | 2022.01.16 |
---|---|
[C언어] C언어 입력시 발생한 버퍼(buffer) 비우기. fputs, fgets 함수 사용. (0) | 2022.01.12 |
[C언어] C언어 배열 자동 할당, 배열 부분 할당, 배열 colcumn 값만 할당 (0) | 2022.01.10 |
[C언어] C언어 배열의 크기에 대해서, 배열 크기 보기 sizeof 함수 (배열 몇 개 들어있는지 확인) (1) | 2022.01.10 |
[C언어] 실수(float number)의 비트 표현, C언어 실수 사용하기, 실수 0.0의 의미 (2) | 2022.01.10 |