«pass-by-reference» etiketlenmiş sorular

Başvuruya göre geçirme, değişken değerinin bir kopyası yerine bellekteki bir değişkenin konumunun bir işleve aktarıldığı bir argüman sıralama stratejisidir, ancak işlev, değişkenin bir gösterici yerine değişkenin kendisini almak için kaynak kodunda görünür.


17
C referans ile geçme
C bir değişkenin referans olarak geçmesini desteklemiyorsa, bu neden işe yarar? #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; } Çıktı: $ gcc -std=c99 test.c $ a.exe i = 21

10
C # referans tipi değişkenler için "ref" kullanımı nedir?
Bir değer türü ( int, structvb.) Parametre olarak ( refanahtar sözcük olmadan ) iletirsem, bu değişkenin bir kopyasının yönteme geçtiğini, ancak refanahtar kelimeyi kullanırsam bu değişkene bir başvuru geçtiğini anlıyorum , yeni bir tane değil. Ancak sınıflar gibi başvuru türlerinde, refanahtar sözcük olmadan bile , bir kopyaya değil, yönteme bir …


15
Java ile Başvuru yoluyla bir dize geçmek?
Aşağıdakileri yapmaya alışkınım C: void main() { String zText = ""; fillString(zText); printf(zText); } void fillString(String zText) { zText += "foo"; } Ve çıktı: foo Ancak, Java'da bu işe yaramıyor gibi görünüyor. StringNesne başvurulan tarafından yerine kopyalandığı için varsayalım . Dizelerin her zaman referans olarak iletilen nesneler olduğunu düşündüm. Burada …

8
Swift: Diziyi referansa göre geçir?
Ben Swift geçmek istiyorum Array account.chatsiçin chatsViewController.chatsreferans olarak (yani bir sohbet eklediğinizde bu account.chats, chatsViewController.chatshala noktaları için account.chats). Yani, uzunluk account.chatsdeğiştiğinde Swift'in iki diziyi ayırmasını istemiyorum .

17
C ++ 'da başvuruya göre geçerken bir parametre için varsayılan değer
Parametreyi referans olarak iletirken bir fonksiyonun parametresine varsayılan bir değer vermek mümkün mü? C ++ ile Örneğin, şöyle bir işlev bildirmeye çalıştığımda: virtual const ULONG Write(ULONG &State = 0, bool sequence = true); Bunu yaptığımda bir hata veriyor: hata C2440: 'varsayılan bağımsız değişken': 'const int' değerinden 'işaretsiz uzun ve' 'const' …


17
C ++ - başvuruları std :: shared_ptr veya boost :: shared_ptr'ye iletme
A ile çalışması gereken bir işleve shared_ptrsahipsem, ona bir referans iletmek ( shared_ptrnesneyi kopyalamaktan kaçınmak için) daha verimli olmaz mıydı ? Olası kötü yan etkiler nelerdir? İki olası durum öngörüyorum: 1) işlevin içinde argümanın bir kopyası yapılır, örneğin ClassA::take_copy_of_sp(boost::shared_ptr<foo> &sp) { ... m_sp_member=sp; //This will copy the object, incrementing refcount …

8
Ref tarafından geçen liste - bu davranışı açıklamama yardım edin
Aşağıdaki programa bir göz atın: 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; } } Ben kabul …


11
Python'da referansa göre bir tamsayı geçirme
Python'da bir tamsayıyı referans olarak nasıl geçirebilirim? İşleve aktardığım bir değişkenin değerini değiştirmek istiyorum. Python'daki her şeyin değere göre geçtiğini okudum, ancak kolay bir numara olması gerekiyor. Örneğin, Java sen referans tiplerini geçebileceği Integer, Longvb Bir tamsayıyı referans olarak bir işleve nasıl geçirebilirim? En iyi uygulamalar nelerdir?

7
Java: int'i referans olarak geçirmenin en iyi yolu
Bir bayt arabelleğinden kodlanmış bir uzunluğu ayrıştıran, ayrıştırılmış uzunluğu bir int olarak döndüren ve bir tamsayı arg olarak arabelleğe bir dizin alan bir ayrıştırma işlevim var. Fonksiyonun indeksi ayrıştırılana göre güncellemesini istiyorum, yani bu indeksi referansla geçirmek istiyorum. C'de sadece bir int *. Bunu Java'da yapmanın en temiz yolu nedir? …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.