C++ - Referenz & const-Zeiger in C/C++

Kürzlich, während ich ihm erklärte, dass der grundlegende Unterschied zwischen Zeiger und Referenzen(in Zusammenhang mit C++ - Programmierung) zu jemandem, sagte ich die üblichen Erklärungen, die reden andere Funktion als argument übergeben Konventionen - Call-by-value, Call by pointer, Call-by-reference, und alle damit verbundenen Theorie über Referenzen.

Aber dann dachte ich, was ein C+ Referenz wird in Bezug auf die übergabe von Argumenten,(Ermöglicht eine Speicher-effiziente Weg, vorbei an großen Strukturen/Objekte zur gleichen Zeit hält Sie sicher, indem nicht der angerufene um die änderung der Variablen des übergebenen Objekts als Referenz, wenn unsere design-Anforderungen)

Einen const-Zeiger in C erreichen würde, die gleiche Sache , z.B. Wenn man muss eine Struktur, die pointer sagen struct mystr *ptr, durch Gießen der Struktur-pointer als konstant -

func(int,int,(const struct mystr*)(ptr));

wird ptr nicht eine Art äquivalent zu einer Referenz?

  1. Wird es nicht funktionieren, in der Art, was wäre, Speicher effizient, indem Sie nicht die Replikation der Struktur(pass-pointer), sondern auch sicher durch das Verbot jeglicher Veränderungen, um die Felder der Struktur aufgrund der Tatsache, dass es übergeben wird, da ein const-Zeiger.

    In C++ - Objekt-Kontext, wir übergeben, auf const-Objekt Zeiger anstelle des Objekts als Referenz gleicher Funktionalität)

  2. Wenn ja, dann was verwenden-case-Szenario in C++, braucht Referenzen.
    Alle spezifischen Vorteile von Referenzen und die damit verbundenen Nachteile?

danke.

-AD

  • Wie werden Zeiger weniger "type-safe" als Referenzen?
InformationsquelleAutor goldenmean | 2010-11-20
Schreibe einen Kommentar