int *p; 하고 p = (int*)malloc(40); 으로 동적메모리할당했습니다


그리고 메모리에 데이터를 입력할 차례인데

for(i=0; i<10; i++){

printf("Next number: ");

scanf("%d", p+i);

}


여기서!! scanf에서 왜 p+i 인가요?? p+i하면 주소값으로 입력하게 되는거 아닌가요?? 데이터를 입력하려면 *(p+i)가 되야하는게 아닌가요??

그리고 왜 &(p+i) 도 아닌지 궁금합니다..