왜 이 연산식들의 결과가 다르죠?
딥블랙
2023.04.01
질문 제목 : 연산자 우선순위를 따지면 둘 다 똑같은데 결과가 완전히 다릅니다.질문 요약 :연산자의 이용.질문 내용 : do
{
if(65=*str && *str=90) *str++ += 32;
} while(*str != 0);이런 식으로 루프를 짰는데저 굵게 친 부분에서 문제가 발생합니다.후위++ 가 가장 우선순위가 높아서 먼저 수행되면서* 가 리턴값 str 을 받고str 은 좌변값이니까 (str 은 char *str 로 선언했습니다.) str = str + 32 라는 식이 성립할 터인데저렇게 하면 무한루프에 걸리네요.저 굵게 친 식을*str +=32;
str++;이렇게 써서 나오는게 제가 원하는 결과입니다.제가 뭔가 잘못 짚고 넘어간 부분이 있나요?:void(0) title=선택한 단어로 사전검색을 합니다.:void(0) title=사전검색 입력창을 엽니다.:void(0) title=웹 검색을 합니다.:void(0) title=웹검색 입력창을 엽니다.:void(0):void(0) title=도구메뉴를 이 페이지에서 사용하지 않습니다.