Hvad er forskellen mellem node * næste og node * næste?


Svar 1:

Jeg har endnu ikke fundet nogen erklæring af den første type i.e node * næste. Tværtimod bruges en sådan erklæring, når en pointer returneres til typen af ​​en datastruktur. Eksempel:

struct node * deleteFirst () {
// Gem henvisning til første link
struct node * tempLink = hoved;
// markér ud for det første link som først
 hoved = hoved-> næste;
// returner det slettede link
retur tempLink;
}

Her ser du funktionen returnerer markøren for typen knude.

I forbindelse med sidstnævnte erklæring, node * næste, erklæres en markør af typen knude, som kan bruges til at henvise til datastrukturer af den type. Eksempel:

struct node * ptr = hoved;
printf ("\ n [");
// start fra begyndelsen
mens (ptr! = NULL) {
printf ("(% d,% d)", ptr-> nøgle, ptr-> data);
ptr = ptr-> næste;
}
printf ("]");

Der er ingen forskel i begge udsagn som sådan.

Hvis der er et yderligere problem, skal du sørge for at dele linket / referencen til problemet.


Svar 2:

Der er ingen forskel, men du skal undgå node * næste på grund af en dårlig fangst på sproget:

node * næste, forrige;

… Opretter en variabel, der er en node pointer (næste) og en, der bare er node (forrige). Stjernen er ikke en del af typen, den påvirker kun identifikatoren efter den.

Hvis du i stedet skriver:

node * næste, forrige;

... fejlen er lidt mere indlysende. Det skulle have været:

node * næste, * forrige;

Svar 3:

Der er ingen forskel, men du skal undgå node * næste på grund af en dårlig fangst på sproget:

node * næste, forrige;

… Opretter en variabel, der er en node pointer (næste) og en, der bare er node (forrige). Stjernen er ikke en del af typen, den påvirker kun identifikatoren efter den.

Hvis du i stedet skriver:

node * næste, forrige;

... fejlen er lidt mere indlysende. Det skulle have været:

node * næste, * forrige;

Svar 4:

Der er ingen forskel, men du skal undgå node * næste på grund af en dårlig fangst på sproget:

node * næste, forrige;

… Opretter en variabel, der er en node pointer (næste) og en, der bare er node (forrige). Stjernen er ikke en del af typen, den påvirker kun identifikatoren efter den.

Hvis du i stedet skriver:

node * næste, forrige;

... fejlen er lidt mere indlysende. Det skulle have været:

node * næste, * forrige;

Svar 5:

Der er ingen forskel, men du skal undgå node * næste på grund af en dårlig fangst på sproget:

node * næste, forrige;

… Opretter en variabel, der er en node pointer (næste) og en, der bare er node (forrige). Stjernen er ikke en del af typen, den påvirker kun identifikatoren efter den.

Hvis du i stedet skriver:

node * næste, forrige;

... fejlen er lidt mere indlysende. Det skulle have været:

node * næste, * forrige;

Svar 6:

Der er ingen forskel, men du skal undgå node * næste på grund af en dårlig fangst på sproget:

node * næste, forrige;

… Opretter en variabel, der er en node pointer (næste) og en, der bare er node (forrige). Stjernen er ikke en del af typen, den påvirker kun identifikatoren efter den.

Hvis du i stedet skriver:

node * næste, forrige;

... fejlen er lidt mere indlysende. Det skulle have været:

node * næste, * forrige;

Svar 7:

Der er ingen forskel, men du skal undgå node * næste på grund af en dårlig fangst på sproget:

node * næste, forrige;

… Opretter en variabel, der er en node pointer (næste) og en, der bare er node (forrige). Stjernen er ikke en del af typen, den påvirker kun identifikatoren efter den.

Hvis du i stedet skriver:

node * næste, forrige;

... fejlen er lidt mere indlysende. Det skulle have været:

node * næste, * forrige;