2012-09-27 5 views
3

가능한 중복 : 나는 C 언어와 싸우고
In C, what is the correct syntax for declaring pointers?포인터 C - 선언

. 포인터는 새로운 것이고, 나는 그것들을 더 가깝게 이해하고 있다고 생각합니다.

질문이 하나 있습니다. 의 차이점은 무엇

:

int k = 4; 
int* pcp = &k; 

int k = 4; 
int *pcp = &k; 
내가 포인터의이 선언의 차이를 찾을 수가 어차피

, 그냥 구문 설탕이다 - 또는 어떤 차이가 ?

감사

+0

유일한 차이점은 공백이있는 부분입니다. 의미 상으로, 그들은 동일합니다. –

+0

"구문상의 설탕"이 아닙니다 ... 그 용어가 의미하는 것이 전혀 아닙니다. 그리고 이것은 포인터와 아무 관련이 없습니다 ... –

답변

5

하지만 다음과 같은 차이가있다 이 개 선언 :

int* p, p2; // declares a pointer to int and a regular int 

과 : 당신의 예에 의해 숨겨져있을 수 있습니다

int *p, *p2; // declares two pointers to int 

.

두 번째 선언문을 선호합니다.

+2

그 이유는 보통 변수 이름에'*'를 붙이기를 선호하는 이유입니다 -'int * p, p2; '는 고통 스럽습니다. –

+0

@DavidSchwartz 아니요, 일반적으로 각 포인터마다 별도의 선언을 사용하고 기본 유형에 '*'를 붙이는 것이 좋습니다. 왜냐하면 그것이 속한 곳이기 때문입니다. –

-2

당신은 스스로를 시도 할 수 있습니다. 단지 모두 입력을 printf와 어떻게되는지 : P

을 그래도 정말 틀리지 않는 경우는 동일합니다) 그 선언에는 차이가 없습니다