Каково Различие Между func (интервал &param) и func (интервал *параметрический усилитель)?

Потратив некоторое время на это, я нашел решение, которое работает для меня (хотя оно сохраняет ваш токен в виде простого текста в ваших учетных данных git).

перед отправкой в ​​репо введите следующее:

git config --global credential.helper 'cache --timeout=3600'

Это сохранит любые имена пользователей и пароли в вашей конфигурации в течение 3600 секунд перед сбросом. Вы можете изменить время ожидания до продолжительности сеанса или просто оставить время ожидания на неопределенное время хранения.

Таким образом, вам нужно будет ввести свой токен только один раз, и он будет храниться до тех пор, пока не будет достигнута длительность времени, после чего вам придется вводить его снова.

12
задан Community 23 May 2017 в 12:08
поделиться

8 ответов

Каждый использует ссылку, каждый использует указатель.

Я использовал бы тот со ссылками, потому что Вы не можете передать Нулевую ссылку (тогда как можно передать Нулевого указателя).

Таким образом, если Вы делаете:

star_swap(NULL, NULL);

Ваше приложение откажет. Принимая во внимание, что, если Вы пробуете:

amp_swap(NULL, NULL); // This won't compile

Всегда идите со ссылками, если у Вас нет серьезного основания использовать указатель.

См. эту ссылку: http://www.google.co.uk/search?q=references+vs+pointers

13
ответ дан 2 December 2019 в 06:10
поделиться

Ссылки не могут быть НУЛЕВЫМИ. Так, использование первой версии препятствовало бы тому, чтобы вызывающая сторона передала ПУСТОЙ УКАЗАТЕЛЬ как один из аргументов функции.

Ссылкам нельзя повторно присвоить указать на что-то еще. Так, Вы знаете это в функции amp_swap(), это x и y всегда обращайтесь к тому же самому. В версии указателя Вы могли (в более комплексной функции), повторно присваиваются x и y указать на что-то еще, которое могло сделать логику менее ясной (да, Вы могли объявить параметры как int *const x избегать этого переназначения).

Тело функции для ссылочной версии смотрит инструмент для очистки, потому что это не имеет как много звезд.

2
ответ дан 2 December 2019 в 06:10
поделиться

Аргумент может также быть приведен в пользу предпочтения версии указателя по ссылочной версии. На самом деле с точки зрения документации это выше, потому что вызывающая сторона сделана знающий о том, что входные параметры будут измененными; сравните эти два вызова:

swap(a, b);
swap(&a, &b); // This cries “will modify arguments” loud and clear.

Конечно, в случае swap функционируйте этот вопрос спорен; все знают, что его аргументы будут изменены. Существуют другие случаи, где это менее очевидно. C# имеет ref ключевое слово по точно этой причине. В C# вышеупомянутое должно было бы быть похожим на это:

swap(ref a, ref b);

Конечно, существуют другие способы зарегистрировать это поведение. Используя указатели один допустимый метод выполнения так.

4
ответ дан 2 December 2019 в 06:10
поделиться

Если Вы смотрите здесь, можно найти описание Указателя по сравнению со Ссылкой, самый полезный бит информации первоначально прибывает, формируют эту цитату.

C++ не позволяет Вам объявить "ссылку константы", потому что ссылка по сути> константа. Другими словами, после того как Вы обязываете ссылку относиться к объекту, Вы не можете снова переплести его для обращения к другому объекту. Нет никакой нотации для повторного переплетения ссылки после объявления ссылки.

Следующее обязывает ri относиться ко мне.

int &ri = i;

Затем присвоение, такое как:

ri = j;

не свяжет ri с j. Это присвоит значение в j к объекту, на который ссылается ri, а именно, я.

Надежда это более ясно.

2
ответ дан 2 December 2019 в 06:10
поделиться

Это не вопрос нотации.

Существует 3 способа передать параметры функции:

  1. значением
  2. ссылкой
  3. указателем

В amp_swap Вы передаете фактические параметры ссылкой. Это представлено и допустимо в C++ только.

В star_swap Вы передаете параметры с помощью указателей. Это был исходный C-путь.

В основном при использовании C++ он поощряется использовать ссылку, так как это более читаемо для переменных. При необходимости в указателях любой ценой используйте их.

И не забудьте использовать & подпишитесь при объявлении метода со ссылками, потому что иначе Вы производите ошибку. Если Вы не объявляете ссылку в amp_swap, функция ничего не подкачает. Поскольку этот способ, которым Вы используете метод 1 (передают только значения параметров) и в функции будет создан две новых автоматические переменные, которые живут только в пределах функции. Таким образом, исходные внешние переменные не будут затронуты.

2
ответ дан 2 December 2019 в 06:10
поделиться

(int *param) более старый стиль C, с помощью указателя непосредственной памяти. (int &param) современный стиль C++, с помощью ссылки (безопасная с точки зрения типов обертка вокруг необработанного указателя). При использовании C++ необходимо, вероятно, использовать ссылку.

1
ответ дан 2 December 2019 в 06:10
поделиться

Они - та же самая вещь к компьютеру. Однако каждый - ссылка (и) и другой указатель (*)

http://www.google.com/search?hl=en&q=pointers+vs+references&btnG=Google+Search&aq=1&oq=pointers+vs

Я полагаю, что у них обоих есть свое использование - как с указателями, можно сделать больше низкоуровневого управления памятью, но синтаксис для ссылок легче.

:)

0
ответ дан 2 December 2019 в 06:10
поделиться
  • Как указатель, ссылка включает модификацию данных, переданных в качестве параметра
  • Как указатель, ссылка включает полиморфизм
  • В отличие от указателя, ссылка никогда не является НУЛЕВОЙ (можно все еще достигнуть этого с некоторым взломом, но, это более сродни саботажу, чем кодирование...),
  • В отличие от указателя, ссылка, когда константа, включает продвижение типа (т.е., имея функцию со станд.:: строковый параметр, принимающий символ *)
  • В отличие от указателя, не может быть повторно присвоена ссылка: нет никакого способа изменить его в какой-то момент кода, тогда как указатель может указать на однажды, B в другом и ПУСТОМ УКАЗАТЕЛЕ в другом снова. И Вы не хотите иметь ++, относился к Вашему указателю ошибкой...
  • В отличие от указателя, ссылка делает управление данными столь же легким, как это было бы с примитивом как "интервал" или "bool", не используя * оператор все время

По этим причинам, в C++, ссылочное использование обычно является значением по умолчанию, и указатель является исключением.

Так, для пользы непротиворечивости между двумя функциями "подкачки" Вы делаете предложение, я использовал бы amp_swap и удалил бы звездообразный из источников (только, чтобы быть уверенным, что никто не будет использовать его и добавлять бесполезный код указателя в источниках)...

1
ответ дан 2 December 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: