인프런 커뮤니티 질문&답변

이거덧글님의 프로필 이미지
이거덧글

작성한 질문수

홍정모의 따라하며 배우는 C언어

6.6 _Bool 자료형

12:18

작성

·

230

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

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

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

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

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

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

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

이거덧글님의 프로필 이미지
이거덧글

작성한 질문수

질문하기