아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
검은물수리128
검은물수리12819.05.19

c언어 함수와 변수 코드 문제입니다.

#include <stdio.h>

void f(void);

int main(void)

{

f();

f();

return 0;

}

void f(void)

{

static int count = 0;

printf(%d\n", count++);

}

이 코드에서 정답을 보면

0

1

이렇게 출력된다고 하는데 count 변수가 static이라서 초기화되지 않는것은 이해되는데요 count++를 prinf 하게되면

1

2

이렇게 나와야하는것 아닌가 싶어서요... 궁금합니다!

55글자 더 채워주세요.
답변의 개수
2개의 답변이 있어요!
  • 증가 연산자의 사용 방법에 따라 초기 증감되는 값이 달라지긴 합니다.

    printf(%d\n", 변수증가);

    (1) 변수증가를 ++count 사용할 경우

    처음 loop 시 count = 0으로 초기화 한 값이 1 증가 후 print됩니다.

    (2) 변 수증가를 count++ 사용할 경우

    처음 loop 시 count = 0으로 초기화 한 값으로 print가 되고 count = 1은 다음 loop에서 처리됩니다.

    도움이 되셨길 바랍니다.

    감사합니다.


  • count++의 경우 증감연산자가 피연산자 뒤에 위치하여 피연산자의 값은 1 증가하지만 해당 구문이 실행될 때의 피연산자값은 후위연산자가 동작하기 전 값으로 처리됩니다 ++count를 사용하시면 원하시는 값을 얻을 것 같네요.