본문 바로가기

c언어

[C언어] 의도한 대로 인수 전달이 되지 않는 함수 호출 (Side Effect) C언어로 쉽게 풀어쓴 자료구조 책에서 이진탐색트리를 이용한 연락처 구현 문제를 풀던 중 구현한 함수를 호출하기 위해 인수를 넣고 함수를 호출했는데 신기한 경험을 했다. 함수를 호출할 때 당연히 왼쪽 인수부터 차례대로 전달되는 줄 알았는데, 다음과 같이 예상치 못한 결과가 나왔다. 당시엔 과제하느라 급해서 그냥 코드를 수정하고 넘어갔는데, 처음 겪는 신기한 현상이라 정리해보려고 한다. 당연히 직관적으로 이름을 입력받는 get_name() 부터 실행될 줄 알았는데, get_pnumber()가 먼저 실행되었다. 위에 주석처리 된 내용대로 호출하면 변수먼저 입력하고, 그 변수를 인수로 호출하기만 하기 때문에 정상적으로 실행되었다. 왜 저런 현상이 일어나나 궁금해서 구글링 해 본 결과 간단하게 이야기 하면 함수의.. 더보기
[자료구조] [C언어] 큐를 이용한 피보나치 수 구현 (음수 포함) 학교에서 과제로 C언어로 쉽게 풀어 쓴 자료구조 172페이지 10번 문제를 풀게 되었다. 네이버 블로그에서 피보나치 수를 구현한 것과 음수의 피보나치 수를 구상하고 구현하는 부분에 대해 설명을 해보았다. https://blog.naver.com/aprkal12/222771967511 블챌 2주차) [자료구조] 큐를 이용한 피보나치 수 구현 이번주는 저번달에 과제겸 시험공부겸 풀었던 문제를 정리해서 복습하려고한다. 큐를 이용한 피보나치 수 ... blog.naver.com 여기에선 코드의 구현에 대해 좀 더 다뤄보려고한다. 먼저 전체 코드는 다음과 같다. #include #include #include // 큐를 이용한 피보나치 수 typedef struct que { // 큐노드 정의 int data; .. 더보기