엄청난 오개념

조회 수 1178 추천 수 0 2010.03.16 20:58:19

 

이거 ㅋㅋㅋ 제가 잘못 알고 있는건지 모르겠네요 ...

 

제가 공부해온 바로는 C Language는 Call by Reference가 없고,

Call by Value만이 있는 것으로 알고 있습니다.

 

그런데, 어디선가 이야기를 들어보니 ...

int *swap(int *x, int *y) <<<---- 이러한 구조를 Call by Reference라고 했다는군요 ...

 

제가 알기론 C에서 오직 Call by Value만 사용하는데,

Memory Address도 일종의 Value로 취급하는 것으로 알고 있습니다.

그리고 진짜 Call by Reference는 C++에서 지원하는 걸로 압니다.

 

Reference란 Memory Space에 이름 or 접근성을 부여하는 것을 뜻하는 걸로 알고 있습니다.

즉, C는 Memory 공간에 이름 or 접근성을 부여하는 메카니즘이 없는 것으로 압니다.

 

어떤분의 말씀으론 자꾸 int *swap(int *x, int *y)가 Call by Reference라고 해서

그동안 제가 알고 있었던 것이 잘못 된건가 생각중입니다 ㅡ_ㅡ;;; ㅎ

 

이에 대해 좀 더 구체적이고, 명확하게 설명해주실 분 ?

제가 알고 있는 것이 맞는지 알려주3 ~~~

 

 


박은병

2010.03.16 23:15:10
*.47.248.69

상훈님이 생각하시는게 맞습니다..^^


포인터 매개변수 전달을 call by reference라고 설명하는것은

포인터에 대한 이해를 좀더 쉽게 설명하려고 그러지 않았을까 생각되네요.

이상훈

2010.03.16 23:28:16
*.36.40.20

그렇군요 ^^;ㅎ

감사합니다 ㅋ

구본규

2010.03.17 00:14:14
*.129.208.75

call by value와 call by reference라는 것을 개념적으로만 놓고 봤을 때,

전달하고자 하는 값을 직접 전달했을 때는 call by value,

그 외 그 값을 참조할 수 있는 정보로 전달했을 때는 call by reference라고 합니다.


따라서 c에서 많이 사용하는 포인터에 의한 매개변수 전달도 참조에 의한 전달이라 할 수 있습니다.

실제 함수 호출시 스택에 푸쉬되는 값이 특정 변수의 값이 아니라 참조값이 전달되는 것이지요.

물론 여기서 말하는 참조값이라는 것이 그 변수의 주소'값'이기 때문에 역시 값이 될 수도 있는 것이지요.

이상훈

2010.03.17 00:39:35
*.36.40.20

네 주소값도 일종의 Value이기 떄문에 Call by Value입니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
168 Multi Threading시 Delayed Branch가 오류를 만들 수 있습니까 ? [6] 이상훈 2010-04-12 4001
167 XEN 가상머신에서 XenStore는 뭐하는 것인가요? [2] 김태훈 2010-04-18 3769
166 u-boot 소스 분석에서 궁금한 점이 있습니다. [6] 원민수 2006-06-28 3380
165 플래시 메모리에서 FTL(Flash Translation Layer) S/W 모듈과 관련하여 문의 드립니다. [4] 남현우 2009-01-09 2733
164 아키텍쳐 바이블 책 문의입니다. [2] 이경호 2007-03-18 2728
163 NFS NAS SAN 이란 무엇인가? file [1] 박은병 2010-04-13 2701
162 ACPI에 대해 잘아시는분 계신가요? [7] 김태훈 2007-12-03 2700
161 i386의 i 와 386은 각각 어떤 의미인가요? [4] 이경호 2007-03-07 2682
160 INTEL의 EFI(Extensible Firmware Interface)가 무엇인가요? [8] 김태훈 2010-04-11 2667
159 ARM 보드에서 잘못된 파일 크기 읽어오는 현상 [6] 김태훈 2010-04-07 2663
158 ppc에서 preempt 완벽 지원여부 아시는분? [1] 최종환 2007-02-22 2663
157 Hardware Virtual Machine에서 Nested Page Tables 정확한 역활과 이점이 무엇인가요? [6] 김태훈 2010-04-11 2644
156 Instruction과 관련된 BIU 질문 [5] 이상훈 2010-04-13 2626
155 s3c2440기반의 리눅스 커널 분석 중 MM관련 질문입니다. 유태경 2007-09-02 2617
154 far call 이란 무엇인가요? [11] 박한범 2010-04-13 2607
153 sparsemem에 대한 질문이 있습니다. [5] 안정모 2010-03-20 2582
152 VMware의 Linux에 Xen 설치해서 XP 설치 가능?? [5] corone 2009-01-17 2543
151 CPU에서 Instruction 처리에 대한 질문 [10] 이상훈 2010-04-12 2536
150 디버거 원리.. [7] 박은병 2008-01-31 2533
149 홈페이지 어떻습니까? [8] 백창우 2006-06-05 2528



XE Login