[C/C++]매개변수에 배열을 넘기면 그게 진짜 배열일까?(feat.포인터,sizeof,다시 한번 스택)


[C/C++]매개변수에 배열을 넘기면 그게 진짜 배열일까?(feat.포인터,sizeof,다시 한번 스택)

C/C++로 짜여진 여러 코드를 보다보면 함수의 매개변수에 배열을 넣는 코드들을 볼 수 있을 것이다. 예를 들면, #include <stdio.h> // 정수형 배열을 인자로 받는 함수 void print_array(int arr[], int size) { for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); // 배열 크기 계산 print_array(arr, size); // 배열 전달 return 0; } 해당 코드는 정수형 배열을 넘겨서 배열의 요소를 출력하는 정말 간단한 코드다. 물론 배열을 함수에 전달 시 배열의 크기를 미리 계산해서 같이 넘겨준다. (배열을 함수에 전달시 배열의 크기를 미리 계산하는 이유는 나중에 나온다.) 그런데 저번 스택 프레임에...


#19학번 #삼육대 #색인 #스택 #씨플플 #인덱스 #컴공 #포인터 #포큐아카데미 #배열 #메모리 #array #c #cpp #pointer #sizeof #stack #권택준 #매개변수 #함수

원문링크 : [C/C++]매개변수에 배열을 넘기면 그게 진짜 배열일까?(feat.포인터,sizeof,다시 한번 스택)