배열의 sizeof 할려면 어떻게 해야 하나요?

kknd345의 이미지

#include <stdio.h>

void main()
{
	int a[10];
	int i=0;
	
	for( i=0; i<10; i++)
		a[i]=i;
	

	printf("%d",*(a+sizeof(a)) );
}

하니깐 제 생각처럼 안되네요
전 a배열의 마지막인 a[10]을 출력할줄 알았는데 그렇게 안 되네요
좀 가르쳐 주세요.

주소값에 sizeof 를 이용해 더하는 방법좀요.

vuccell의 이미지

#include <stdio.h> 

void main() 
{ 
   int a[10]; 
   int i=0; 
    
   for( i=0; i<10; i++) 
      a[i]=i; 
    

   printf("%d",*(a+(sizeof(a)/sizeof(int))) ); 
}

로 하셈
k2hyun의 이미지

kknd345 wrote:

전 a배열의 마지막인 a[10]을 출력할줄 알았는데 그렇게 안 되네요
좀 가르쳐 주세요.

주소값에 sizeof 를 이용해 더하는 방법좀요.

	printf("%d", a[sizeof(a)/sizeof(a[0])-1] );

이건 어떠실런지요.

참고로 a[10]을 출력하면 안되죠.. a[9]를 출력해야 하므로 -1

더 이상 없다.

vuccell의 이미지

위에 것이 정답.. ==333
(아니면 도망 ==333)