2012-01-18 3 views
2
struct _Structure{ 
    int member; 
}; 

구조 포인터구조 포인터 구현 방법

포인터 두 문구가 다른 포인터 인스턴스화

를 나타내고, 상기 2 문구 제 생각

간의 차이가

을 구조화

구조체 Pointe _Structure의 데이터 멤버 액세스 관한 동안 R

typedef struct _Structure *SP; 

SP sp; 

포인터 두 가지는 동일한 코드

sp->member; 
    AND 
ps->member 

BOTH 문구 SAME, OK NOPS 인 경우

을 자르지

typedef struct _Structure PS; 

PS *ps; 

을 구조화 !!! 우리가

typedef struct _Structure *SP; 

SP *sp; 

//note: here 'sp' is like double pointer 

감사해야 할 이유와 또한

, 미트

+1

실제로 무엇에 대해 물어 보는 것입니까? –

답변

0

는을 구성 할 수있는 두 식 구조 포인터포인터 사이에는 차이가 없습니다.

그리고 spps 변수 사이에는 차이가 없습니다. 둘 다 구조체에 대한 포인터입니다. typedef 또는 변수 선언에있는 *을 사용하면 아무런 차이가 없습니다.

1

typedefs을 확장하면 spps은 모두 struct _Structure *입니다. 그 점에서, 그들 사이에는 전혀 차이가 없습니다.

분명히 typedefs 그 자체 (과)는 하나의 포인터이고 다른 하나는 그렇지 않기 때문에 다른 의미를 갖는다. 마지막 예에서

, sp 이중 포인터,
이중 같은 없습니다. 이중 포인터는 일부 컨텍스트에서는 유용하지만 단일 포인터보다 덜 자주 사용됩니다.

0

차이 더 이상

typedef struct _Structure *SP; 

SP *sp; 

//note: here 'sp' is like double pointer 

에서이 필요하지 않습니다. 이렇게하면, 당신이 말한대로 포인터에 대한 포인터를 갖게됩니다.

0

내 의견으로는 두 문구 모두 동일합니다. 둘 다 구조체를 구현해야합니다. 프로그래머는 typedef에 포인터를 지정하고이를 선언하거나 struct에 대한 포인터를 선언합니다.