http://sizuha.egloos.com/2689069
제목만 보고 오해할 분이 있어서 얘기하자면,
본문에도 정확하게 써 있듯이 C언어는 call by value만 지원한다.
댓글을 보니 제목만 보고 쓴 사람들이 꽤 있는 모양이다.
근데 내가 이 사실을 안 건 얼마되지 않는다.
그 옛날엔 번역서가 가장 유명했고, 임인건의 <Turbo C 완전정복>이
집필서로 가장 유명했다. 92년도 이후로 따지면 벌써 18년이나
시간이 흘렀다. 대다수 책에서도 call by value, call by reference의 차이에 대해
버젓이 소개한다. 나도 그렇게 공부한 세대이니 머리가 띵하다.
시중에서 가장 많이 판매된다는 <열혈강의 C 프로그래밍> 조차도
334p의 제목이 'call-by-value와 call-by-reference'이다.
ANSI C99를 뒤적여 보니 call by reference라는 표현도 없거니와
reference type도 없다. referenced type은 '참조된 타입'이니 의미가 다르겠다.
인터넷 검색을 해보고, 지식인 답변을 보니 열혈강의에 나온 예제가
자주 나오는 것을 보면 책의 영향력은 상당히 크다.
그러고 보면 C언어는 꽤 오래 썼고, 포인터 사용에 불편함이 있었던 것도
아니지만 근간이 되는 개념을 잘못 알고 있었던 셈.
사실을 올바르게 아는 사람들은 어떤 책으로 공부했기에 아는 걸까?
한 가지 사실이 틀렸다고 모든 것을 부정하는 건 곤란하겠다.
18년 전에 C언어를 배웠다면 여러분도 나와 그닥 다르지 않았을테니까. ^^;
시간이 흐르면서 알고 있던 사실이 사실이 아닌 경우도 종종 만난다.
잘못된 사실은 다시 학습하면 되는 문제인데, 그 속에 나타나는 오만방자한
모습은 별로 마음에 안 든다.
그냥 잡담임....
ps. 좋은 C언어 책 추천 바랍니다.