C Programming

C언어 포인터를 이용하여 배열의 모든 원소 역순 출력 함수 - 공부하는 도비

DOVISH WISDOM 2022. 10. 28. 12:07  
728x90
반응형
#include <stdio.h>
void ReverseArray(int* ptr, int len) {
    
    for(int i = len-1; i >= 0; i--)
    {
        printf("%d ", *(ptr + i));

    }
}

int main(void) {
	int score[] = { 100, 78, 65, 32, 89 };
	
	int array_length =sizeof(score) /sizeof(score[0]);
	
	ReverseArray(score, array_length);
	return 0;
}

ReverseArray 함수 결과를 main으로 따로 주지 않아도 되니 void로 선언해주고, 

배열 score의 포인터 변수로 *ptr로 받습니다. 

저런식으로 배열을 포인터로 받으면 배열의 0번째 방 주소를 *ptr로 가리키게 됩니다.

위 코드에 따르면 *ptr 을 출력하면 100이 나오게 됩니다. 

 

void ReverseArray(int* ptr, int len) {
    
    printf("*ptr : %d\n", *ptr);
    for(int i = len-1; i >= 0; i--)
    {
        printf("%d ", *(ptr + i));
    }
}​

그리고, 배열의 크기를 이용하여 배열의 맨 뒤 원소부터 포인터로 접근해줍니다. 

그럼 간단하게 배열의 모든 원소를 역순으로 출력할 수 있게 됩니다. 

반응형