Jak zauważa Joel w podcastie Stack Overflow # 34 , w C Programming Language (alias: K & R), wspomniano o tej właściwości tablic w C:a[5] == 5[a] Joel mówi, że to z powodu arytmetyki wskaźników, ale wciąż nie rozumiem. Dlaczegoa[5] == 5[a]
Jak zauważa Joel w podcastie Stack Overflow # 34 , w C Programming Language (alias: K & R), wspomniano o tej właściwości tablic w C:a[5] == 5[a] Joel mówi, że to z powodu arytmetyki wskaźników, ale wciąż nie rozumiem. Dlaczegoa[5] == 5[a]
Kiedy wskaźnik do określonego typu (powiedzmy int, char, float, ..) jest zwiększany, jego wartość jest zwiększana o wielkości tego typu danych. Jeśli voidwskaźnik, który wskazuje na dane o rozmiarze, xjest zwiększany, w jaki sposób ma wskazywać xbajty do przodu? Skąd kompilator wie, aby dodać xdo...
Przeglądając kilka pytań do wywiadu w C, znalazłem pytanie "Jak znaleźć rozmiar tablicy w C bez użycia operatora sizeof?", Z następującym rozwiązaniem. Działa, ale nie mogę zrozumieć, dlaczego. #include <stdio.h> int main() { int a[] = {100, 200, 300, 400, 500}; int size = 0; size =...
Wiem, że arytmetyka wskaźników jest niedozwolona dla wskaźników zerowych. Ale wyobraź sobie, że mam coś takiego: class MyArray { int *arrayBegin; // pointer to the first array item, NULL for an empty array unsigned arraySize; // size of the array, zero for an empty array public: int *begin()...