몽상실현개발주의

[따배씨] 10.7 배열을 함수에게 전달해주는 방법 본문

Language/C

[따배씨] 10.7 배열을 함수에게 전달해주는 방법

migrationArc 2021. 6. 5. 23:30

[따배씨] 10.7 배열을 함수에게 전달해주는 방법

따배씨 - 따라하며 배우는 C언어

10강 배열과 포인터

10.7 배열을 함수에게 전달해주는 방법

  • 배열을 여러 함수에게 사용할 때 마다, 데이터를 복사 해주는 방식은 굉장히 비효율적
    • 배열의 첫 주소를 알려주는 방식으로 해결
  • 함수에서 배열을 입력 받을때, 내부적으로 pointer 로 받아 처리
    • c/c++ 의 프로그래밍 에서는 크기가 미리 정해진 배열보다는 동적할당 메모리를 배열처럼 이용하는것이 주 사용 하는 방법
    • 동적할당 메모리를 사용 할때에는 pointer 를 이용함

 

#include <stdio.h>

double averge(double arr[], int n);

int main(){
    double arr1[5] = {10, 13, 12, 7, 8};
    double arr2[5] = {1.8, -0.2, 6.3, 13.9, 20.5};
    
    printf("Avg = %f\n", averge(arr1, sizeof(arr1)/ sizeof(double)));
    // Avg = 10.000000
  
    printf("Avg = %f\n", averge(arr2, sizeof(arr2)/ sizeof(double)));
    // Avg = 8.460000
     
    return 0;
}


double averge(double arr[], int n){
    double avg = 0.0;
    for (int i = 0; i < 5; i++){
        avg += arr[i];
    }
    
    avg /= (double)n;
    
    return avg;
}
double averge(double arr[], int n);
  • 배열을 함수에 입력 값으로 받기 위해서는, 배열 값과 함께 배열의 크기를 받아 준다

 

double averge(double arr[], int n);
double averge(double* arr, int n);
double averge(double* , int n);
double averge(double [], int n);
  • prototype 표기 방법

 

 


이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.

http://blog.naver.com/atelierjpro

 

실리콘 밸리의 프로그래머 : 네이버 블로그

안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요.

blog.naver.com

http://www.inflearn.com/course/following-c

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원

www.inflearn.com

 

 

 

Comments