역순 출력하는게 너무 어렵고 이해가 안되요 .....(중복질문)
민아
2023.04.01
질문 제목 : 역순 출력하는게 너무 어렵고 이해가 안되요 .....
질문 내용 :
중복질문 죄송합니다 . 답변들이 안달려서요 ..
int main(void){
int arr[5]={1,2,3,4,5};
int *p=arr;
int i,j;
int temp;
for(i=0;i4-i;i++){
temp=p[i];
p[i]=p[4-i];
p[4-i]=temp;
}
for(i=0;i5;i++)
printf(%d,p[i]);
return 0;
}
temp 변수는 왜 선언 된것이며 ...... 저 빨간색 부분은 왜 저렇게 .... 되는것인지 ..
저게 무슨의미인지 .......이해가 안되서 ...... 울겟습니다 ㅜㅜ
다른문제잘 풀다가도 역순 출력만 나오면 너무 힘드네요 ;;;
저 빨간색 부분 꼭좀 이해할수있게 도와주세요
-
휘들램
먼저 배열, 반복문, 포인터에 대해서 알고 계셔야 합니다.
빨간색 부분만 설명할게요.
for(i = 0; i 4-i; i++){
이 부분의 4-i부분은 배열이 5개라서 그렇습니다. 이경우 반으로 나눠서 올림한 값까지 만 연산을 하면 되는데 그 이유는 함수의 몸체 부분에 나옵니다.
다음줄을 보면 temp=p[i];
인데, 먼저 저 위에 p라는 인트형 포인터 변수에 배열의 주소값을 넣어 놨습니다.
그래서 여기에는 우선 배열의 i번째 요소를 temp라