피연산자의 평가 순서에 따라 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; 로 바꿔도 함수 호출이 먼저네요
피연산자의 평가 순서가 함수가 더 먼저인가 보네요
마찬가지인 경우로 연산자 우선순위가 같으면 오른쪽에서 왼쪽으로 계산된다던가 했는데...
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |
2700313 | 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) | 크나 | 2025-07-03 |
2700287 | 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) | 아련나래 | 2025-07-03 |
2700264 | 문자와 숫자 동시에 입력??? | 글고운 | 2025-07-03 |
2700236 | txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) | 미국녀 | 2025-07-03 |
2700211 | 전위 연산자 (2) | 어른처럼 | 2025-07-02 |
2700183 | C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; | 피스케스 | 2025-07-02 |
2700150 | 꼭좀 도와주세요ㅠㅠㅠ | 호습다 | 2025-07-02 |
2700095 | 연산문제...질문... | 오빤테앵겨 | 2025-07-01 |
2700070 | while문 , 3의배수 출력하는 프로그램좀 짜주세욤. | 횃불 | 2025-07-01 |
2700041 | 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? | 헛장사 | 2025-07-01 |
2700012 | 배열// (1) | 전갈자리 | 2025-07-01 |
2699895 | 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) | 선아 | 2025-06-30 |
2699842 | 질문을 너무 많이 하네여.....죄송.... (2) | 해님꽃 | 2025-06-29 |
2699816 | 오류 질문입니다.. (1) | 해비치 | 2025-06-29 |
2699763 | 질문입니다 ! 꼭 좀 도와주세요ㅠㅠ (2) | 미라 | 2025-06-28 |
2699555 | c언어 다항식을 입력을 했는데 왜 출력이 안될까요? | 피스케스 | 2025-06-27 |
2699528 | C언어 포인터연산 질문입니다. (3) | 안녕나야 | 2025-06-26 |
2699476 | 끌어올림;;달력 짜봤는데요 이 소스 줄일 수 있나요? - 스샷첨부 (2) | 클라우드 | 2025-06-26 |