Запитання з тегом «pass-by-reference»

Передати посилання - це стратегія аргументації, за якою розташування змінної в пам'яті передається функції, а не копії значення змінної, хоча функція з'являється у вихідному коді для отримання самої змінної, а не вказівника на неї.

10
Чи краще в C ++ проходити за значенням або проходити за постійною посиланням?
Чи краще в C ++ проходити за значенням або проходити за постійною посиланням? Мені цікаво, яка краща практика. Я розумію, що постійне посилання має забезпечувати кращі показники роботи програми, оскільки ви не створюєте копію змінної.

17
Проходження посиланням на С
Якщо C не підтримує передачу змінної за посиланням, чому це працює? #include <stdio.h> void f(int *j) { (*j)++; } int main() { int i = 20; int *p = &i; f(p); printf("i = %d\n", i); return 0; } Вихід: $ gcc -std=c99 test.c $ a.exe i = 21

10
Яке використання “ref” для змінних типу еталону в C #?
Я розумію, що якщо я передаю тип значення ( int, structтощо) як параметр (без refключового слова), копія цієї змінної передається методу, але якщо я використовую refключове слово, передається посилання на цю змінну, не новий. Але з типами посилань, як-от класи, навіть без refключового слова, посилання передається на метод, а не …

7
Чому 128 == 128 помилково, але 127 == 127 відповідає дійсності при порівнянні обгортки Integer на Java?
class D { public static void main(String args[]) { Integer b2=128; Integer b3=128; System.out.println(b2==b3); } } Вихід: false class D { public static void main(String args[]) { Integer b2=127; Integer b3=127; System.out.println(b2==b3); } } Вихід: true Примітка. Цифри від -128 до 127 відповідають дійсності.

15
Передавання рядка за посиланням на Java?
Я звик робити наступне C: void main() { String zText = ""; fillString(zText); printf(zText); } void fillString(String zText) { zText += "foo"; } А вихід: foo Однак у Java це, здається, не працює. Я припускаю, тому що Stringоб'єкт копіюється замість переданого посилання . Я думав, що Струни - це об'єкти, …

8
Swift: Передати масив за посиланням?
Я хочу передати свій Swift Array account.chatsв якості chatsViewController.chatsпосилання (так що , коли я додати чат на account.chats, по- chatsViewController.chats, як і раніше вказуєaccount.chats ). Тобто, я не хочу, щоб Swift розділяв два масиви, коли account.chatsзмінюється довжина .

17
Значення за замовчуванням для параметра при проходженні посилань у C ++
Чи можна надати параметр функції за замовчуванням, коли ми передаємо параметр посиланням. в C ++ Наприклад, коли я намагаюся оголосити функцію типу: virtual const ULONG Write(ULONG &State = 0, bool sequence = true); Коли я це роблю, це видає помилку: помилка C2440: "аргумент за замовчуванням": не вдається перетворити з "const …

6
Як зробити еквівалент пропуску за посиланням для примітивів на Java
Цей код Java: public class XYZ { public static void main(){ int toyNumber = 5; XYZ temp = new XYZ(); temp.play(toyNumber); System.out.println("Toy number in main " + toyNumber); } void play(int toyNumber){ System.out.println("Toy number in play " + toyNumber); toyNumber++; System.out.println("Toy number in play after increement " + toyNumber); } …

17
C ++ - передача посилань на std :: shared_ptr або boost :: shared_ptr
Якщо у мене є функція, з якою потрібно працювати з a shared_ptr, чи не було б більш ефективно передавати посилання на нього (щоб уникнути копіювання shared_ptrоб'єкта)? Які можливі погані побічні ефекти? Я передбачаю два можливі випадки: 1) всередині функції робиться копія аргументу, як у ClassA::take_copy_of_sp(boost::shared_ptr<foo> &sp) { ... m_sp_member=sp; //This …

8
Список, переданий посилання - допоможіть мені пояснити цю поведінку
Погляньте на наступну програму: class Test { List<int> myList = new List<int>(); public void TestMethod() { myList.Add(100); myList.Add(50); myList.Add(10); ChangeList(myList); foreach (int i in myList) { Console.WriteLine(i); } } private void ChangeList(List<int> myList) { myList.Sort(); List<int> myList2 = new List<int>(); myList2.Add(3); myList2.Add(4); myList = myList2; } } Я припускав myList, …

8
Чи є швидкий пропуск за вартістю або пропускний посилання
Я справді новачок у Swift, і я просто читав, що класи передаються за посиланням, а масиви / рядки тощо копіюються. Чи пропуск за посиланням такий же, як і в Objective-C або Java, де ви фактично передаєте посилання "a" чи це правильний пропуск за посиланням?

11
Передача цілого числа за посиланням у Python
Як я можу передати ціле число за посиланням у Python? Я хочу змінити значення змінної, яку я передаю функції. Я читав, що все в Python передається за значенням, але має бути легкий фокус. Наприклад, в Java можна передати еталонні типи Integer, Longі т.д. Як я можу передати ціле число у …

7
Java: найкращий спосіб передавати int за посиланням
У мене є функція синтаксичного аналізу, яка аналізує закодовану довжину з байтового буфера, вона повертає аналізовану довжину як int і приймає індекс у буфер як цілочисельний аргумент. Я хочу, щоб функція оновлювала індекс відповідно до того, що вона проаналізувала, тобто хочу передавати цей індекс за посиланням. У C я просто …

6
python pandas фрейм даних, це передача за значенням або передача за посиланням
Якщо я передаю фрейм даних функції та модифікую її всередині функції, це передає значення або передає посилання? Я запускаю такий код a = pd.DataFrame({'a':[1,2], 'b':[3,4]}) def letgo(df): df = df.drop('b',axis=1) letgo(a) значення aне змінюється після виклику функції. Чи означає це, що це побічне значення? Я також спробував наступне xx = …

7
C ++ передає масив за посиланням
чи дозволено це передавати масив за посиланням? void foo(double& *bar) Здається, мій компілятор каже ні. Чому? Який правильний спосіб передавати масив за посиланням? Або попрацювати? У мене є аргумент масиву, який мій метод повинен змінити, і який я повинен отримати потім. Як варіант, я міг би зробити цей масив членом …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.