#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void){
    int maxlen, len, i;
    char * str;
   
    // 문자열의 최대 길이 입력받기
    printf("문자열의 최대길이 입력: ");
    scanf("%d", &maxlen);
    getchar();
   
    // 입력받은 길이만큼 메모리 할당 (+1은 null문자를 위한 공간)
    str = (char*)malloc(sizeof(char) * (maxlen + 1));
   
    // 문자열 입력받기
    printf("문자열 입력: ");
    fgets(str, maxlen + 1, stdin);
   
    // 입력받은 문자열의 마지막 개행 문자 제거
    str[strlen(str) - 1] = 0;
    len = strlen(str);
   
    // 문자열을 뒤에서부터 탐색하며 단어를 역순으로 출력
    for(i = len; i > 0; i--) {
        if(str[i] == ' ') {
            printf("%s ", &str[i + 1]);
            str[i] = 0;  // 공백 문자를 null 문자로 대체하여 단어를 분리
        }
    }
    // 마지막 단어 출력
    printf("%s ", &str[0]);
   
    // 할당한 메모리 해제
    free(str);
    return 0;
}


여기서...    for문 단어 역순이 왜 저코드로 기능하는지 이해를 못하겠습니다..ㅠㅠ 그리고 ' '  이 연산자? 무슨뜻인지...