2011-11-17 2 views
-2

가능한 중복 : 나는 C 코드를 읽을 때
In C, what is the correct syntax for declaring pointers?C에서 포인터 변수 선언에 *를 넣는 것이 중요합니까?

, 나는

int *p; 
char * s; 
char * d = &c; 
ll_model* model = new_ll_model(n, cc->term); 
double* avg_ll; 

내 질문

처럼 포인터를 쓸 수있는 몇 가지 방법을 참조는 다음과 같습니다

  1. 그들 사이에 차이가 있습니까?

  2. 차이점은 무엇입니까? 즉, 공백 문자와 *의 위치가 의미가 있습니까? 포인터를 작성하는 올바른 방법이다, 그래서 자신도없고,

+1

세 번째는 매력입니다. –

+0

정확히 다른 점이 있습니까? –

+0

죄송합니다. 질문에 맞는 단어를 사용하지 않았습니다. – Sean

답변

0

조금 오래 - 당신이 * 정수 (int)를 증가하면 내가 문자 * foo는 스타일을 선호하는 1 INT

  • 의 크기에 따라 포인터를 이동합니다.

    그러나 나는이 방법을 선호 :

    int *p; 
    

    대신을 : 그 이유는

    int* p; 
    

    또는

    int * p; 
    

    당신은에 int *의 숫자를 선언 할 경우 때문에 같은 줄로, 식별자 옆에 *이있는 것이 더 합리적입니다. 더 깨끗하고 덜 혼동 스럽기 때문에 유형 대신. 예 : 내 이유를 좋아하지 않는 경우에

    int* p, *q, * r; 
    

    것은, 당신이 그들 중 하나에 충실하고 사용을 변경하지 않도록합니다

    int *p, *q, *r; 
    

    는보다 낫다.

  • +0

    내가 마음에 들지 않으면 왜 당신의 이유 중 하나를 고수하겠습니까? –

    +1

    @KerrekSB 나는 그가 한 가지 스타일에 집착한다는 것을 의미한다고 생각한다. 그의 이유 중 하나에 충실하지 않는다. –

    +0

    그래, 세스 말이 맞다. 제대로 말하지 않으면 죄송합니다. – mtahmed

    2

    기능적으로 내 코드를 읽을 다른 사람에게 읽을 수있는 방법

  • . 당신이 읽을 수로

    같이
    int *p; 
    

    double* avg_ll 
    

    "것은이 p가 가리키는이 int이다" "avg_ll의 유형 포인터가 double이다 ." AFAIK는 전자가 선호되는 C 스타일이고 후자는 C++ 코드에서 더 많이 사용됩니다.

    그러나 C FAQ explains처럼 단일 구문에서 여러 변수를 선언하는 습관을 가지고 있다면 후자의 스타일은 실수로 이어질 수 있습니다.

  • +0

    +1 마지막 파라. –

    0

    게시 한 코드 행에는 많은 차이점이 있지만 포인터 유형을 선언하는 방법과 관련이있는 것은 없습니다.

    공백은 중요하지 않습니다.

    읽을 수있는 것은 보는 사람의 눈입니다. 나는 * 문자 앞뒤에 하나의 공백 문자를 배치하는 것을 선호한다. 차이는 포인터 연산에 사용되는 -

    0

    1. 예들이 있기 때문에 다양한 유형의
    2. 공백이 차이가 없습니다의 포인터의 다른 종류 답변. 당신이 char *를 증가 시키면 그것은 포인터를 1 char만큼 움직인다. 그들 사이에는 차이가 없습니다,하지만 내 스타일은 지금까지 기본적으로
    관련 문제