아하
생활

생활꿀팁

검은물수리128
검은물수리128

c언어 2진수 순환 프로그래밍에서 이렇게 코드를 짜면 왜 역순으로 출력이 되나요?

// 2진수 형식으로 출력

#include <stdio.h>

void print_binary(int x);

int main(void)

{

print_binary(9);

}

void print_binary(int x)

{

if( x > 0 )

{

print_binary(x / 2); // 재귀 호출

printf("%d", x % 2); // 나머지를 출력

}

}

이런식으로 print_binary(x/2) 다음에 printf를 적으면 역순으로 출력이 되고 printf 다음에 print_binary(x/2)을 쓰면 정순으로 출력이 된다는데 왜 그런지 이해가 안가요... x는 인수가 유지되는게 아닌가요? 궁금합니다

1개의 답변이 있어요!