포인터 공부하는데 질문받아주실수있나요?ㅠㅠ
유희
2023.04.01
질문 제목 :
질문 요약 :질문 내용 :
#include stdio.h
int main()
{
int arr[5]={1,2,3,4,5};
int*ptr=arr;
int i;
for(i=0;i5;i++)
{
(*ptr)+=2;
ptr++;
}
for(i=0;i5;i++)
{
printf(%d,ptr[i]); 이렇게 하면안되고arr[i]를 하면 값이 잘뜨는데.. 왜 두개는 같다고 배운것 같은데..왜 다른값이 나오죠?ㅠㅠ 알려주세요 }
return 0;
}
-
햇님
인트형이 아니고 정수형 또는 인티저형이라고 해야 됩니다.
-
지음
ptr은 포인터 변수 입니다. printf문에서는 ptr[i] 배열로 하실려고 하시네요? 당연히 안되겠죠~
int *ptr = arr; 부분에서 ptr에는 arr[0] 의 어드레스를 가지게 됩니다. 그리고 인트형이기에 +4씩 어드레스가 증가하게됩니다.
for(int i=0; i5;i++)
{
printf(\%d, %d\\n\ -
튼트나
ptr 첫번째 for 문에 의해 5 가 저장된 메모리의 다음 메모리를 가리키겠는데요.
printf(\%d\