Jaka jest różnica między int * p i int p * a int * p?


Najlepsza odpowiedź

Cóż, nie ma nic takiego jak:

int p*;

To jest nieprawidłowa instrukcja. Otrzymasz błąd kompilacji z tym kodem.

Z drugiej strony int * p i int * p są w zasadzie takie same. To tylko kwestia stylu. Jeśli chodzi o kompilator C / C ++, nie ma znaczenia, czy piszesz int * p, czy int * p. Tak więc, jeśli wolisz skojarzyć * z typem zamiast ze zmienną, możesz to zrobić.

Ale jedna ważna uwaga:

Poniższa deklaracja tworzy taką nie dwa wskaźniki całkowite:

int* a,b;

Tutaj b jest zadeklarowane jako liczba całkowita, gdzie jako a jest wskaźnikiem liczby całkowitej. Ta instrukcja:

int *a,*b;

deklaruje a i b jako wskaźniki całkowite.

Odpowiedź

Int p *: heaven „jeszcze nie widziałem Int * p: tak jak tutaj * jest dołączone do p, więc tylko p będzie wskaźnikiem do liczby całkowitej. jeśli zadeklarujesz inną zmienną po p oddzielonym średnikiem, nie będzie wskaźnik. To znaczy. int * p, q. Tutaj p będzie wskaźnikiem do liczby całkowitej, ale q będzie normalną zmienną typu int, a nie wskaźnikiem.

Przypadek Int * p, q działa podobnie do Int * p, q. Obie deklaracje deklarują p jako wskaźnik liczby całkowitej, a q jako normalną liczbę całkowitą. Int * p, q to typ deklaracji, która wprowadza w błąd programistów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *