Po zanurzeniu się w kodzie źródłowym Pythona stwierdzam, że utrzymuje on tablicę PyInt_Objects odint(-5) do int(256)(@ src / Objects / intobject.c) Mały eksperyment to potwierdza: >>> a = 1 >>> b = 1 >>> a is b True >>> a = 257 >>> b =...
Po zanurzeniu się w kodzie źródłowym Pythona stwierdzam, że utrzymuje on tablicę PyInt_Objects odint(-5) do int(256)(@ src / Objects / intobject.c) Mały eksperyment to potwierdza: >>> a = 1 >>> b = 1 >>> a is b True >>> a = 257 >>> b =...
Czy wskaźnik zwracany przez następującą funkcję nie byłby niedostępny? char *foo(int rc) { switch (rc) { case 1: return("one"); case 2: return("two"); default: return("whatever"); } } Więc czas życia zmiennej lokalnej w C / C ++ jest praktycznie tylko w funkcji, prawda? Co...
#include<stdio.h> #include<string.h> int main() { char * p = "abc"; char * p1 = "abc"; printf("%d %d", p, p1); } Kiedy drukuję wartości dwóch wskaźników, drukuje ten sam adres. Czemu?
To może być proste pytanie, ale dlaczego const char * nie potrzebuje adresu pamięci, aby wskazywać? Przykład: const char* a = "Anthony"; i nie: const char *a = // Address to const char jak inne
Jako ćwiczenie piszę parser Haskella od zera. Tworząc leksyk zauważyłem następujące zasady dotyczące raportu Haskell 2010 : cyfra → ascDigit | uniDigit ascDigit → 0| 1| … | 9 uniDigit → dowolny Unicode cyfry dziesiętne octit → 0| 1| … | 7 hexit → cyfra | A| … | F| a| … |f dziesiętny →...
string s; bool b[] = {s=="", s==s.c_str(), s.c_str()==""}; zestawy b[] = {true, true, false}; dlaczego b[2]fałsz? Jeśli A==Bi A==Cczy nie powinno to oznaczać
Java zapewnia sposoby pisania literałów liczbowych w bazach 2, 8, 10 i 16. Zastanawiam się, dlaczego uwzględniono bazę 8 , np. int x = 0123;? Myślę, że może być coś podobnego do faktu, że w systemie szesnastkowym pojemność jednego bajtu to FF + 1 i tak
Rozumiem, że ciągi w C są tylko tablicami znaków. Wypróbowałem więc następujący kod, ale daje on dziwne wyniki, takie jak wyrzucanie elementów bezużytecznych lub awarie programu: #include <stdio.h> int main (void) { char str [5] = "hello"; puts(str); } Dlaczego to nie działa? Czyści...