피연산자의 평가 순서에 따라 y는 34 or 50의 값을 가진다 ?
다크
2023.11.15
질문 제목 : 피연산자의 평가 순서에 따라 y는 34 or 50의 값을 가진다..어떻게 해서 그렇게 되는지요?질문 내용 : int a = 5 ;
int foo() { a = 20; return 30;}
void main() {
int y ;
y = a + foo();
printf(%d\n, y);
}
-
새꽃 2023-11-15
피연산자의 평가 순서는
y = a + foo(); 에서
a가 먼저가 되면 a가 외부변수로 5로 초기화가 되어 있기 때문에 5 + 이후 함수 호출이 일어나게 되고
함수에서 외부 변수를 20으로 바꾸고 30을 리턴하기 때문에 기존에 먼저 연산이 된 5 + 에 리턴된 30이
더해져서 35가 되는것 같고 반대로 함수 연산이 우선이라면 함수부터 실행이 되기 때문에
외부변수가 20으로 값이 바뀌고 30을 리턴, 리턴 받은 30과 외부변수 a를 더하는데 함 -
파라나 2023-11-15
34는 어떻게 나오는지 모르겠네요;;
y = a + foo(); 에서 함수 먼저 실행이 되면 50이 되고 a + 가 먼저 되고 그 다음에 함수 실행이 되면 35가
되는걸 말하는게 아닌가요? 연산 순서에 따라서 35 또는 50의 결과값이 나온다는...
y = foo() + a; 로 바꿔도 함수 호출이 먼저네요
피연산자의 평가 순서가 함수가 더 먼저인가 보네요
마찬가지인 경우로 연산자 우선순위가 같으면 오른쪽에서 왼쪽으로 계산된다던가 했는데...
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |
2675356 | 2진수를 10진수로 바꾸려고 하는데 막히네요.. | 풀잎 | 2024-11-17 |
2675297 | Prity 비트 발생기 | 한란 | 2024-11-16 |
2675249 | C책 좀 추천해 주세요 (2) | 딸기우유 | 2024-11-16 |
2675193 | 연습문제 17-1 질문입니다. | 한별나라 | 2024-11-15 |