#include <stdio.h> void bubble_sort(int* a); int main() { int arr[5]={1,2,3,4,5}; printf("%ld\n",sizeof(arr)); bubble_sort(arr); return 0; } void bubble_sort(int* a) { printf("%ld\n",sizeof(a)); } |
크기 5짜리 int 배열 arr
이걸 main에서 sizeof(arr) 프린트해보면 생각대로 20 나오는데
함수에 넣어서 출력하니까 8이 나옵니다.
??????머죠
배열을 인자로 전달해도 포인터가 전달됨. 만약 배열로 쓰고싶으면 배열길이까지 같이 전달해야함
8은 포인터변수의 크기임
ㅇㅎ 그럼 포인터 크기가 8바이트라 8이 튀어나오는거군요
64비트에선 포인터크기는 8임 ㅇㅇ
바부 ㅋㅋ