역참조의 정확한 정의

조회 수 1077 추천 수 0 2010.02.27 17:23:17

 

여태까지 그냥 그림을 그려보면서 이해했는데, 정확한 정의를 모르겠네요 ...

이번에 보여주신 코드를 보면서, 저런걸 역참조라고 하는거구나 느꼈습니다.

 

*** 역참조의 정확한 정의를 알고 싶습니다 ***

 

 

 

가령 예를 들어서

 

struct node{
       int data;
       struct node *link;

};

typedef struct node Stack;

 

void Push(Stack **top, int data){

    ~~~~~

}

 

int main(void){

      Stack *top = NULL;

      Push(&top, 10);

      return 0;

}

 

위와 같은 코드가 있다고 가정을 하겠습니다.

그렇다면, 지금 역참조가 이루어지고 있는 부분은 Push 부분에서 인자로 넘기고 있는 &top에서 일어나는 것인가요?

아니면 Push 부분에서 이중 포인터로 인자를 받는 Stack **top 부분에서 이루어지고 있는 것인가요?

 

**** 한 번 역참조의 정확한 정의 **** 를 알려주셨으면 합니다.

                    -----------------------------

 

그리고 너무 기쁩니다 ㅋ

 

주변에 제가 공부하는 부분을 공부하시는 분들이 없어서 홀로 고독과 싸워야 했는데,

이렇게 좋은 커뮤니티가 있을줄이야 몰랐고, 완전히 사막에서 오아시스를 발견한 기분입니다.

 


김태훈

2010.02.28 11:54:28
*.145.148.92

역참조는 포인터 변수의 값인 주소에 들어가 있는 값을 가져오는 것을 말합니다. 문법적으로는 포인터 변수 앞에 (*) 붙으면 역참조가 되는 것이죠.

 

int a=1, b;

int *p=&a;

 

b = *p;

 

위 코드에서 마지막 라인에 '*p'가 포인터 변수 p에 대한 역참조를 나타냅니다.

 

2차원 포인터 변수 경우는 한번 역참조(*)를 해도 메모리 번지가 값으로 나오고, 역참조를 두번(**)하면 실제 값이 나오죠.

Linux

2010.02.28 13:38:16
*.36.40.20

감사합니다 ^^;ㅎ

개념이 쏙 하고 들어오네요 ㅎㅎ

여태까지 역참조라는 용어를 모르고, 당연하다는 듯이 사용했는데 ... ㅋ

List of Articles
번호 제목 글쓴이 날짜 조회 수
82 조건부 컴파일과 + 추가질문(종합 2가지) [2] Linux 2010-02-28 1058
81 커널 아키텍처 관련 문의 [4] Linux 2010-02-28 1102
» 역참조의 정확한 정의 [2] Linux 2010-02-27 1077
79 Sparse 에 관한 몇가지 질문 [3] Linux 2010-02-27 1380
78 GCC 관련 스터디는 지금 없나요? [1] Linux 2010-02-27 1120
77 커널, GCC 관련 스터디 문의 [1] Linux 2010-02-26 1296
76 커널 모듈에서 특정 사용자 프로세스의 메모리 공간을 접근하고 싶습니다. [3] 남현우 2009-04-01 1892
75 Thread 상태값 2 [1] 송선희 2009-03-16 2051
74 thread의 상태값 [4] 송선희 2009-03-10 2072
73 linux swap out 관련.. [1] 박은병 2009-03-05 2093
72 안녕하세요 jtag에 대해 궁금한게 있어 여쭤봅니다. [4] 최원제 2009-02-25 1966
71 스터디 관련 [3] 이상대 2009-02-13 1961
70 가상화에 대한 설명 중에 궁금한게.. [3] 이홍우 2009-02-09 2012
69 VT-x 지원?? [10] corone 2009-01-19 2159
68 VMware의 Linux에 Xen 설치해서 XP 설치 가능?? [5] corone 2009-01-17 2205
67 플래시 메모리에서 FTL(Flash Translation Layer) S/W 모듈과 관련하여 문의 드립니다. [4] 남현우 2009-01-09 2342
66 CS8900 인터럽트 처리와 관련한 질문입니다. [1] 김현우 2009-01-07 1653
65 인터럽트 발생하지 않습니다. [1] 김현우 2009-01-03 1721
64 전역 변수 참조 문제 김현우 2008-12-28 1780
63 리눅스 커널에 ipv6모듈 올리기 [2] 송선희 2008-12-23 1885



XE Login