연산자 우선순위 관련 질문 드립니다.
글쓴이: is1472 / 작성시간: 금, 2018/05/11 - 1:22오후
후위 연산자 , i++ j++ 과 같은 후위연산자가 연산자 우선순위에서 가장 높은 등급에있습니다.
그런데
i = j++; 같은경우를 보면 j값을 i에 넣고 j를 증가시킵니다. 연산자 우선순위에 따르면 ++를 먼저 해야 하지 않나나요? 그냥 당연시 여기는 계산법에 연산자 우선순위가 헷갈려서 질문 드립니다.
그리고
void main() { char s[10] ="hello"; char sr[10] ="xyz"; char *t,*t2; t=s; t2=sr; printf("%p %p \n",t,t2); printf("%s %s \n",t,t2); *t ++=*t2++; //*t = *t2; //t++;t2++; 와 같이 동작 printf("%p %p \n",t,t2); printf("%s %s \n",t,t2); }
처음에는 코드중 *t ++=*t2++; 이 부분의 동작 원리를 제 나름 주석으로 결론 지었는데 맞는지에 대한 질문역시 드립니다.
Forums:
우선 i = j++ 은 좋은 코딩 스타일은 아닙니다.
우선 i = j++ 은 좋은 코딩 스타일은 아닙니다. 알아보기 쉬운것이 가장 좋겟죠.
++이 가장 우선 순위에 있는 것은 맞습니다. 하지만 두가지 경우가 있습니다
1. ++i // 이경우에는 현재의 statement의 연산이 끝난뒤 처리 됩니다
2. i++ // 이경우에는 현재의 statement의 연산이 시작되기 전에 처리 됩니다.
그러므로 i = j++는
i = j => j++ 순으로 처리 됩니다.
댓글 달기