부호질문..!
꽃짱아
질문 제목 : 질문 내용 : #include stdio.h
void showarrayelem(int * param, int len)
{
int i;
for(i=0;ilen;i++)
printf(%d,param[i]);
printf(\n);
}
int main()
{
int arr1[3]={1,2,3};
int arr2[5]={4,5,6,7,8};
showarrayelem(arr1,sizeof(arr1) / sizeof(int));
showarrayelem(arr2,sizeof(arr2) / sizeof(int));
return 0;
}
여기서
/ 가 어떤역할을 하나요?
int len의 역할하는곳이 어디에요?
-
아빠몬
sizeof(int)는 컴파일러가 4로 바꾸어줍니다.
따라서
showarrayelem(arr1,sizeof(arr1) / sizeof(int));
는
showarrayelem(arr1,sizeof(arr1) / 4);
와 같습니다.
또한 sizeof(arr1)은 3 * 4가 되어 12가 됩니다.
그래서 다시
showarrayelem(12 / 4);
와 같게 되고 결국엔
showarrayelem(3);
과 같게 됩니다.
배열에 몇개가 있나를 세어볼때 사용 -
물맑
아니.. sizeof(int)여기서 int a; int b; 이런식으로 변수가선언되거나
int a=2; int b=3; 이렇게선언되잔아여..근데
sizeof(int));는 변수가없고 int만 있기에..; -
냐하
int가 어떤 변수인지는 C언어 책의 첫 단원에서 거의 첫페이지에 나오지 않나 기억을 더듬어 봅니다.
-
눈
흐음
그럼 int는 어떤변수인가여..? -
횃눈썹
말 그대로예여
int len = sizeof(arr1) / sizeof(int);
sizeof(arr1) // arr1배열의 크기
sizeof(int) // int의 크기
위의 sizeof 두개를 나눈거예여
그럼 arr1배열의 원소 개수가 나오는거져. 그걸 len에 넣는 거네요