spider12 napisał(a):
nie rozumiem ze str 151 BB jednej rzeczy co wspólnego z adresem komórki np 0x01 w pamięci ram ma wywołanie (tab+2) i jaki możemy mieć wpływ na adres w komórce pamięci czy też indeksu bądź wartości kryjącej się pod konkretnym indeksem w tablicy , po przez takie wyrażenie ?
Proszę cię, błagam - na przyszłość - ZAPAMIĘTAJ sobie, że im bardziej złożone zdanie piszesz a do tego im mniej użyjesz przecinków, czy też podziałów na odrębne zdania, tym mniej osób ciebie zrozumie. A nawet sam nie będziesz rozumiał tego pytania, gdy je przeczytasz. Szczególnie po kilku dniach.
Tu zrobiłeś istną masakrę amerykańską piłą tarczową - i kompletnie nie czepiam się polszczyzny, tylko tego - że właśnie kompletnie nie można zrozumieć o co tobie chodzi ... Szczególnie o jakim adresie 0x01 piszesz ? (to w odniesieniu do czego w książce) ... A po chwili bez przecinka i kropki jednym ciurkiem "jaki możemy mieć wpływ na adres w komórce?" .... to zaraz to ty wiesz co to oznacza adresowanie pamięci czy nie za bardzo wiesz ? Bo może warto od tego zacząć i napisać np:
Słuchajcie nie za bardzo rozumiem o co chodzi z tym adresowaniem pamięci, co to są adresy? Nie za bardzo wiem co to oznacza indeksowanie tablicy? Jak to powiązać ? Tym bardziej że w książce na stronie XXX w akapicie nr YYY napisane jest "cytuję: ....."
Panie - wtedy to KAŻDY zrozumiałby twoje pytanie ... a tak ? sorki ale zgroza - postaraj się na przyszłość ok? Bo nad pytaniami też warto popracować.
spider12 napisał(a):
czy indeks tablicy [4] kompilator traktuje jako zmienną int przecież to stała dosłowna?
Tu już KOMPLETNE pomieszanie kilku absolutnie różnych zagadnień ... ale ok - jeśli nie miało się NIGDY do czynienia z programowaniem to ja oczywiście mogę to zrozumieć i ciebie rozumiem. Więc pomimo to że mieszasz kilka rzeczy to postaram się odpowiedzieć o ile też zgaduję twoje intencje - twoje pytanie poprawnie ...
Tablica to zbiór iluś tam wartości, i można ją rozważać na etapie abstrakcji w oderwaniu w ogóle od pamięci. Zostaw na chwilę pamięć RAM, FLASH, EEPROM i inne pamięci ...
I przez chwilę wyobraź sobie na spokojnie - że masz tablicę danych z czterema elementami:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Oczywiście język C umożliwia ci dokonanie tego zapisu w taki sposób:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli bez określania w nawiasach kwadratowych, ile ona ma elementów, ponieważ kompilator na etapie kompilacji - widzi ile ty tych elementów wpisałeś w nawiasach klamrowych rozumiesz ?
I teraz jak się odwoływać gdzieś w programie do elementów takiej tablicy ? Chciałbyś np odczytać wartość elementu ostatniego ? No jak ?
Musimy posłużyć się tzw indeksem ! Czyli liczbą którą podamy w nawiasach kwadratowych. Liczba ta może być albo stałą dosłowną czyli możemy napisać tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
STAŁA DOSŁOWNA w tym przypadku to 3 (słownie: trzy) ... Stała dosłowna nie ma NIC WSPÓLNEGO z tablicami - po prostu być może pominąłeś albo zapomniałeś wcześniejszego rozdziału o stałych dosłownych. W kodzie programu jeśli wpisujesz wprost cyfrę, liczbę - to mówimy, że jest to STAŁA DOSŁOWNA.
ale możemy też zapisać tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w tym przypadku niechcący też mamy do czynienia ze stałą dosłowną, ale tym razem w nawiasach kwadratowych indeksem naszej tablicy nie jest stała dosłowna tylko zmienna i, która ma wartość = 3
w obu przypadkach w zmiennej a wyląduje wartość = 4 z naszej tablicy.
------------------------ [ Dodano po: 3 minutach ]spider12 napisał(a):
i czy wyrażenie tab+2
To jest posługiwanie się WSKAŹNIKIEM tablicy. Skoro mowa, że nazwa tablicy wskazuje na jej pierwszy element, Czyli nazwa jest wskaźnikiem na jej pierwszy element, to jeśli zbudujemy wyrażenie którego wartością będzie wskaźnik na pierwszy element tablicy plus jakaś liczba - to w tym wypadku ta liczba będzie pełniła niejako rolę indeksu opisanego wyżej. Czyli przy zapisie indeksowym możemy napisać tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
zaś przy wskaźnikowym
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.