Некоторая путаница в отношении синтаксиса указателя узла в C - PullRequest
0 голосов
/ 20 апреля 2020

так что я новичок в низкоуровневом языке. И я изучал некоторые учебные материалы для C, и я не мог реально различить guish разницу между следующими выражениями.

struct Node *temp;
struct Node *head;

//expression 1
temp->next = head;
//expression 2
temp = head;

Разве два выражения не означают одно и то же, что направляет указатель временного узла в направлении, куда указывает указатель головного узла?

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Как вы там заявили, temp и head являются указателями, а в первом выражении значение next указателя temp указывает на head, тогда как во втором выражении вы делаете temp=head

... это не значит, что temp указывает на head, скорее temp теперь head ...

Надеюсь, вы его получите. :)

1 голос
/ 20 апреля 2020

temp - указатель. Предположительно, перед вашим «выражением 1» было установлено, что он указывает на некоторый узел x . Затем temp->next = head; устанавливает next член x в head. Изменяется x (элемент next в x ). Не изменяется temp.

В отличие от temp = head; устанавливается temp на head. Меняется temp.

...