개인노트
[C언어] 배열을 함수의 인자로 전달하는 방법 본문
보통 함수에 인자를 전달한다고 하면
int main(void){ int num=1, tistory=2; ifunc(num, tistory); } |
이런 형식으로 해당 함수의 인자전달 부분에 변수명을 넣어준다.
하지만 배열은 변수 명 대신 변수의 주소 값을 넣어준다.
#include <stdio.h> void showarr(int*, int); void addarr(int*, int, int); int main(void) { int arr[] = { 1,2,3,4,5 };
addarr(arr, sizeof(arr) / sizeof(int), 1); showarr(arr, sizeof(arr) / sizeof(int)); addarr(arr, sizeof(arr) / sizeof(int), 2); showarr(arr, sizeof(arr) / sizeof(int)); addarr(arr, sizeof(arr) / sizeof(int), 3); showarr(arr, sizeof(arr) / sizeof(int)); getchar(); } void addarr(int *param, int len, int add) { int i; for (i = 0; i < len; i++) { param[i] += add; } } void showarr(int *param, int len) { int i; for (i = 0; i < len; i++) { printf("%d ", param[i]); } printf("\n"); } |
인자 전달 부분에 배열의 이름(배열의 첫번째 주소 값)을 넣은 후
포인터 변수를 선언하여 배열의 주소 값을 넣는다.
[ 선언 방법 ]
(int * param...) 또는 (int param[])으로 선언이 가능하다.
'C > 문법' 카테고리의 다른 글
[C언어] 다차원 배열 (0) | 2017.07.04 |
---|---|
[C언어] 포인터 대상의 const 선언 (0) | 2017.07.03 |
[C언어] 포인터 배열 (0) | 2017.06.30 |
[C언어] 포인터와 문자열 (0) | 2017.06.30 |
[C언어] 포인터와 배열의 관계 (0) | 2017.06.29 |