Нет, они абсолютно не эквивалентны, и их ошибка имеет большие последствия (например, Функции Фортрана с указателем приводят к обычному присваиванию ).
=
- это присваивание значения (или просто присваивание, если вы хотите быть точным), оно возьмет значение, сохраненное с правой стороны, и скопирует его с левой стороны. Если левая часть является указателем, она скопирует значение в указатель цели. Если указатель нигде не указывал (ноль) или некое неопределенное место (адрес мусора), это ненадлежащее поведение, но вполне вероятно cra sh.
=>
- это назначение указателя , левая сторона должна быть указателем, правая сторона должна быть целью или указателем. Указатель с левой стороны будет указывать на цель (или цель указателя) с правой стороны. Если указатель слева уже указывал на некоторую память, которая ранее была выделена оператором allocate
через указатель, и это был единственный указатель, указывающий на это, то память будет потеряна (утечка памяти).