[기초]연산자 계산순서 질문드립니다.
봄
2023.04.01
연산자 계산순서 질문..연산자 계산순서 간단한 질문입니다.질문 내용 :
int x=15, y=17일때
z=x+y*2-++x*(y++/3) 이라고 합시다.
그럼 15+17*2-16*(17/3) 으로 식을 쓸수있고
① 17/3은 소수점으로 나오는걸 버림해서 5로취급하고 계산하는게 맞나요?
② 위식에서 y++는 계산결과값(z의 값에만 )에 아무런 영향을 주지 못하나요? 다만 계산이 다끝나면 y가 18이 되는것인가요?
자세히좀 알려주세요^^
-
환히찬
++x 때문에 제일 먼저 쓰인 x의 결과가 어찌될지는 예상하기 힘듭니다. 어떤 컴파일러는
x = x + 1;
z = x + y * 2 - x * (y / 3);
y = y + 1;
이렇게 쓸 수도 있습니다. -
곰돌이
1번. 맞습니다. int형이기 때문에 소수점은 버림니다.
2번. 맞습니다. y++가 괄호안에 있어서 헷갈려보이지만 결국 기본원칙에 따름니다.
예를 들자면....
y=3;
z=(y++)+2;
결과는 y는 4, z는 5가 됩니다. 정확히 알고계시네요~