[C}연산자 우선 순위
채꽃
질문 제목 : 연산자 우선 순위 number++ 6 과 ++number 6 의 차이?
질문 내용 :
int main(int argc, char *argv[])
{
int number=0;
while(number++ 6)
{printf(%d \n,number);
}
system(pause);
return 0;
}
출력 이 : 1,2,3,4,5,6그런데, while(++number 6)
이렇게 하면 출력이 : 1,2,3,4,5
이유를 알려주세요?
-
재바우
네 쉽게 설명드리면 ++a은 1이 증가된 상태이고 a++ 은 0부터 시작한다고 보시면 됩니다.
-
가막새
그러니까, number++ 6 인 경우, number 6 & number++ 이런 순서 진행되나,
++number 6 은, number++ & number 6 순서로 진행되는 거네요.
한 5번 정도 읽고 이해됐어요. 감사합니다.
i = ++j ( 증가 한 후 대입)와 i = j++ (j를 대입 한 후, 증가) 와 같네요. -
나미
while(++number 6) 잖아요? 여기서 맨첨에 number 를 0으로 초기화 하셨는데 ++number 라고 되면서 우선적으로 1이 증가되고 그다음에 출력이 되는거죠.
이런식으로 해서 맨첨에 1이 출력이 되고,2,3,4,5 가 출력이 되는데 number가 5일때 우선적으로 ++로 증가를 시키면 6이 되기때문에 성립이 안되서 6이 출력이 안되는거고
위에식같은경우는 5인상태에서 식이 성립이 되고 증가연산자가 붙어서 6으로 증가되서 출력되고 뭐