포인터 프로그램 질문좀 할께요..
미쿡
2023.04.01
main(){
int ab[4]={10,20,30,40};
int *abc = ab;
printf(%d, *abc++);
printf(%d\n,*++abc);
printf(%d,*abc++ +1);
}
이프로그램에 대해 설명좀 해주세요..ㅠㅠ
오늘 포인터 처음 배우는데..
내용은 왠지 쉬워 보이는데..
좀 버겁내요.. ㅠ ㅠ
손수 계산하고 이해해보려는데..
도저히 결과값을 모르겠습니다.. ㅠ ㅠ
고수님들 도와주세요 ㅠ ㅠ
이해하기 쉽게 설명좀 부탁드립니다.. ㅜ
-
모두가람
두분다 감사합니다 ^^
그런데 오늘 처음배운거 치고 아직 이해가좀 안가고..
프로그램 돌려서 결과값 확인해 보면서 이해해야 할듯하내요 ㅠ ㅠ -
차분나래
*abc는 ab[4]와 같은 시작주소 즉 abc[4] = ab[4] 라고 생각하면 쉽습니다.
*abc++은 포인터의 자료형만큼 주소값이 증가합니다. *abc의 처음 상태는 ab[0]와 같고
*abc++하고 나면 ab[1]과 같습니다.
printf(\%d\ -
은별
int* abc=ab
정수형 포인터를 잡고 ab배열의 맨 앞주소(ab[0])를 abc에 넣습니다.
abc의 주소가 가르키는 값을 출력후 abc의 주소를 다음칸으로 옮깁니다.(ab[1])
abc의 주소를 다음칸으로 옮긴후 (ab[2]) abc의 주소가 가르키는 값을 출력합니다.
(abc의 주소가 가르키는 값)+1 을 출력후 abc의 주소를 다음칸으로 옮깁니다.(ab[3])