• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

12:18

20.02.28 18:07 작성 조회수 177

1

int main()

{

for (int = 1, i <= 10;  ++i)

    printf("%d", i);

    return 0;

}

이게 코드인데 그 표에는 i++로 되어 있더라고요.

for문을 설명 안 듣고 봤을 때는 

for (int = 1, i <= 10;  i++) 이거는 i <= 비교한 다음  i를 증가시키는 거 구나 라고 생각했는데 그게 아니라

+1하고 <=를 비교한다고 하더라고요 그러면

int main()

{

for (int = 1, i <= 10;  ++i)

    printf("%d", i);

    return 0;

}

이거랑 

int main()

{

for (int = 1, i <= 10;  i++)

    printf("%d", i);

    return 0;

}

이거는 아무런 차이가 없는 것 인가요??

답변 1

답변을 작성해보세요.

1

learnmore님의 프로필

learnmore

2020.02.28

결과적으로 둘다 아무런 차이가 없습니다.

왜냐하면 ++i (전위연산자) 또는 i++ (후위연산자)는 단독으로 사용했을 때는 차이가 없기 때문입니다.

for 반복문의 구조를 보시면 for (초기식; 조건식; 증감식) 으로 구성되어 있는데, 증감식 부분에 i++ 또는 ++i 코드만 단독으로 들어가 있기 때문에 차이가 없게 됩니다.

다만, 연산자를 사용한 뒤 다른 변수에 할당할 때는 위치에 따라 큰 차이가 있을 수 있습니다.

Ex) result = num1++;    // num1의 값을 result에 할당한 뒤 num1의 값을 1 증가시킴

       result = ++num1;    // num1의 값을 1 증가시킨 뒤 result에 할당