개인노트

[C언어] 배열을 함수의 인자로 전달하는 방법 본문

C/문법

[C언어] 배열을 함수의 인자로 전달하는 방법

BillnairK 2017. 7. 2. 16:05

보통 함수에 인자를 전달한다고 하면


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
Comments