Wenn Sie in der Sprache C ein Array wie folgt initialisieren: int a[5] = {1,2}; dann werden alle Elemente des Arrays, die nicht explizit initialisiert wurden, implizit mit Nullen initialisiert. Aber wenn ich ein Array wie dieses initialisiere: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); Ausgabe: …
Ist dieser Code gültig (und definiertes Verhalten)? int &nullReference = *(int*)0; Sowohl g ++ und Klirren ++ kompilieren , ohne jede Vorwarnung, auch bei der Verwendung von -Wall, -Wextra, -std=c++98, -pedantic, -Weffc++... Natürlich ist die Referenz nicht wirklich null, da nicht auf sie zugegriffen werden kann (dies würde bedeuten, dass …
Ich bin neu in C ++. Ich sehe oft bedingte Aussagen wie folgt: if statement_0; else if statement_1; Frage: Soll ich syntaktischelse if als ein einzelnes Schlüsselwort behandeln? Oder ist es tatsächlich eine verschachtelte ifAnweisung innerhalb des Äußeren elsewie unten? if statement_0; else if statement_1;
Betrachten Sie folgendes Programm: #include <iostream> int main = ( std::cout << "C++ is excellent!\n", 195 ); Unter Verwendung von g ++ 4.8.1 (mingw64) unter Windows 7 kompiliert das Programm und läuft einwandfrei. Es druckt: C ++ ist ausgezeichnet! zur Konsole. mainscheint eher eine globale Variable als eine Funktion zu …
In Bjarne Stroustrups The C ++ Programming Language 4. Ausgabe, Abschnitt 36.3.6 STL-ähnliche Operationen, wird der folgende Code als Beispiel für die Verkettung verwendet : void f2() { std::string s = "but I have heard it works even if you don't believe in it" ; s.replace(0, 4, "" ).replace( s.find( …
Ist es undefiniertes Verhalten, Nullzeiger mit dem %pKonvertierungsspezifizierer zu drucken ? #include <stdio.h> int main(void) { void *p = NULL; printf("%p", p); return 0; } Die Frage bezieht sich auf den C-Standard und nicht auf C-Implementierungen.
Ich habe gerade gesehen, wie Stephan T. Lavavej CppCon 2018über "Class Template Argument Deduction" sprach , wo er irgendwann übrigens sagt: In C ++ fließen Informationen fast nie rückwärts ... Ich musste "fast" sagen, weil es ein oder zwei Fälle gibt, möglicherweise mehr, aber nur sehr wenige . Obwohl ich …
Klammern in C ++ werden an vielen Stellen verwendet: z. B. in Funktionsaufrufen und Gruppierungsausdrücken, um die Priorität von Operatoren zu überschreiben. Abgesehen von illegalen zusätzlichen Klammern (wie z. B. Argumentlisten für Funktionsaufrufe) ist eine allgemeine, aber nicht absolute Regel von C ++, dass zusätzliche Klammern niemals schaden : 5.1 …
https://godbolt.org/z/cyBiWY Ich kann zwei 'some'Literale im Assembler-Code sehen, der von MSVC generiert wurde, aber nur eines mit clang und gcc. Dies führt zu völlig unterschiedlichen Ergebnissen der Codeausführung. static const char *A = "some"; static const char *B = "some"; void f() { if (A == B) { throw "Hello, …
Stellen wir uns vor, wir haben eine Struktur für 3 Doubles mit einigen Mitgliedsfunktionen: struct Vector { double x, y, z; // ... Vector &negate() { x = -x; y = -y; z = -z; return *this; } Vector &normalize() { double s = 1./sqrt(x*x+y*y+z*z); x *= s; y *= …
Der folgende Code ist ziemlich trivial und ich habe erwartet, dass er gut kompiliert werden kann. struct A { struct B { int i = 0; }; B b; A(const B& _b = B()) : b(_b) {} }; Ich habe diesen Code mit g ++ Version 4.7.2, 4.8.1, clang ++ …
Ich möchte eine Funktion definieren, die ein unsigned intas-Argument verwendet und ein intkongruentes Modulo UINT_MAX + 1 an das Argument zurückgibt. Ein erster Versuch könnte so aussehen: int unsigned_to_signed(unsigned n) { return static_cast<int>(n); } Wie jeder Sprachanwalt weiß, ist das Casting von nicht signiert zu signiert für Werte größer als …
Angenommen, ich habe einen Typ und möchte seinen Standardkonstruktor privat machen. Ich schreibe folgendes: class C { C() = default; }; int main() { C c; // error: C::C() is private within this context (g++) // error: calling a private constructor of class 'C' (clang++) // error C2248: 'C::C' cannot …
Betrachten Sie die folgende Aussage: *((char*)NULL) = 0; //undefined behavior Es ruft eindeutig undefiniertes Verhalten hervor. Bedeutet das Vorhandensein einer solchen Anweisung in einem bestimmten Programm, dass das gesamte Programm undefiniert ist oder dass das Verhalten erst dann undefiniert wird, wenn der Kontrollfluss diese Anweisung trifft? Wäre das folgende Programm …
Bei der Integration einer Django-App, die ich zuvor noch nicht verwendet habe, habe ich zwei verschiedene Möglichkeiten gefunden, um Funktionen in Klassen zu definieren. Der Autor scheint beide sehr absichtlich zu verwenden. Der erste ist einer, den ich selbst oft benutze: class Dummy(object): def some_function(self,*args,**kwargs): do something here self is …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.