Pytania otagowane jako pass-by-reference

Przekaż przez referencję to strategia kierowania argumentami, w ramach której lokalizacja zmiennej w pamięci jest przekazywana do funkcji, a nie kopia wartości zmiennej, chociaż funkcja pojawia się w kodzie źródłowym, aby otrzymać samą zmienną, a nie wskaźnik do niej.


17
Przekazywanie przez odniesienie w C
Jeśli C nie obsługuje przekazywania zmiennej przez referencję, dlaczego to działa? #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; } Wynik: $ gcc -std=c99 test.c $ a.exe i = 21

10
Jakie jest zastosowanie „ref” dla zmiennych typu referencyjnego w C #?
Rozumiem, że jeśli mijam typu wartość ( int, struct, itd.) Jako parametr (bez refhasła), kopia tej zmiennej jest przekazywany do metody, ale jeśli mogę użyć refsłowa kluczowego odniesienie do tej zmiennej jest przekazywana, nie nowy. Ale w przypadku typów referencyjnych, takich jak klasy, nawet bez refsłowa kluczowego, referencja jest przekazywana …


15
Przekazywanie ciągu przez odniesienie w Javie?
Jestem przyzwyczajony do wykonywania następujących czynności w C: void main() { String zText = ""; fillString(zText); printf(zText); } void fillString(String zText) { zText += "foo"; } A wynik to: foo Jednak w Javie to nie działa. Zakładam, ponieważ Stringobiekt jest kopiowany, a nie przekazywany przez przywołanie . Myślałem, że ciągi …

8
Swift: przekazać tablicę przez odniesienie?
Chcę przekazać moje Swift Array account.chatsna chatsViewController.chatsodnośnik (tak, że kiedy dodać czat account.chats, chatsViewController.chatsnadal wskazuje account.chats). To znaczy, nie chcę, aby Swift rozdzielał dwie tablice, gdy account.chatszmienia się długość .

17
Wartość domyślna do parametru podczas przekazywania przez odwołanie w C ++
Czy jest możliwe nadanie wartości domyślnej parametrowi funkcji, gdy przekazujemy parametr przez odniesienie? w C ++ Na przykład, gdy próbuję zadeklarować funkcję taką jak: virtual const ULONG Write(ULONG &State = 0, bool sequence = true); Kiedy to robię, wyświetla błąd: błąd C2440: „domyślny argument”: nie można przekonwertować z „const int” …


17
C ++ - przekazywanie referencji do std :: shared_ptr lub boost :: shared_ptr
Jeśli mam funkcję, która musi współpracować z a shared_ptr, czy nie byłoby bardziej wydajne przekazanie jej odwołania do niej (aby uniknąć kopiowania shared_ptrobiektu)? Jakie są możliwe złe skutki uboczne? Wyobrażam sobie dwa możliwe przypadki: 1) wewnątrz funkcji tworzona jest kopia argumentu, jak w ClassA::take_copy_of_sp(boost::shared_ptr<foo> &sp) { ... m_sp_member=sp; //This will …

8
Lista przekazana przez ref - pomóż mi wyjaśnić to zachowanie
Spójrz na następujący program: 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; } } Zakładałem myList, że …


11
Przekazywanie liczby całkowitej przez odwołanie w Pythonie
Jak mogę przekazać liczbę całkowitą przez odwołanie w Pythonie? Chcę zmodyfikować wartość zmiennej, którą przekazuję do funkcji. Czytałem, że wszystko w Pythonie jest przekazywane przez wartość, ale musi być prosta sztuczka. Na przykład w Javie można przekazać typów referencyjnych Integer, Longitp Jak mogę przekazać liczbę całkowitą do funkcji przez odwołanie? …

6
python pandas dataframe, czy jest to przekazywanie przez wartość, czy przekazywanie przez odniesienie
Jeśli przekażę ramkę danych do funkcji i zmodyfikuję ją wewnątrz funkcji, czy jest to przekazanie przez wartość czy przekazanie przez odwołanie? Uruchamiam następujący kod a = pd.DataFrame({'a':[1,2], 'b':[3,4]}) def letgo(df): df = df.drop('b',axis=1) letgo(a) wartość anie zmienia się po wywołaniu funkcji. Czy to oznacza, że ​​jest to wartość przekazana? Wypróbowałem …

7
Java: najlepszy sposób przekazywania int przez odniesienie
Mam funkcję parsowania, która analizuje zakodowaną długość z bufora bajtowego, zwraca przeanalizowaną długość jako int i pobiera indeks do buforu jako liczbę całkowitą arg. Chcę, aby funkcja aktualizowała indeks zgodnie z tym, co jest analizowane, tj. Chcę przekazać ten indeks przez odniesienie. W C po prostu zdałabym int *. Jaki …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.