Обмен технологиями

c Узнайте, как пройти собеседование

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

В чем разница между ссылкой и указателем?
  • Указатели и ссылки — это концепции адреса. Указатель указывает на участок памяти, а его содержимое — это адрес указанной памяти. Ссылка — это псевдоним для определенного участка памяти;

  • Программа выделяет область памяти для переменных-указателей, но не для ссылок.

  • При использовании указателей добавьте * впереди, и ссылки можно будет использовать напрямую.

  • Ссылки инициализируются при их определении и не могут быть изменены позже. Указатели могут измениться. То есть объект, на который ссылаются, изменить нельзя, но объект-указатель можно изменить.

  • Нет нулевых ссылок, но есть нулевые указатели. Это делает код, использующий ссылки, более эффективным, чем использование указателей. Потому что нет необходимости проверять достоверность ссылки перед ее использованием. Напротив, указатели всегда следует проверять, чтобы они не были нулевыми.

  • Используйте «sizeof» для ссылки, чтобы получить размер переменной, и используйте «sizeof» для указателя, чтобы получить размер адреса переменной.

  • Теоретически ограничений на количество уровней указателей нет, но уровень ссылок есть только один. То есть ссылки на ссылку нет, но может быть указатель на указатель. int **p //Юридическое значение, int