Wskaźniki w języku C. Przewodnik - Helion
Tytuł oryginału: Understanding and Using C Pointers
Tłumaczenie: Konrad Matuk
ISBN: 978-83-246-8289-8
stron: 256, Format: 140x208, okładka: miękka
Data wydania: 2014-02-14
Księgarnia: Helion
Cena książki: 44,90 zł
Jeśli chcesz błyskawicznie opanować programowanie w języku C, sięgnij po tę książkę! Gdy już poznasz podstawy, nauczysz się także korzystać ze wskaźników. To prawdziwa zmora wszystkich programistów, bowiem błędne wykorzystanie wskaźnika może w okamgnieniu zrujnować Twój program. Zobacz, jak tego uniknąć i zaprzyjaźnić się ze wskaźnikami.
Inne książki opisują wskaźniki w jednym lub dwu rozdziałach, natomiast my poświęciliśmy im całą książkę. Dzięki temu dogłębnie poznasz ten mechanizm, zrozumiesz go i przekonasz się, że przy odrobinie uwagi nie jest on wcale taki straszny! W trakcie lektury wykorzystasz wskaźniki na funkcję, przygotujesz tablicę wskaźników oraz zobaczysz, jak współdziałają one z łańcuchami znaków. Twoją uwagę z pewnością zwrócą fragmenty omawiające zabezpieczenia oraz niewłaściwe wykorzystanie wskaźników. Książka ta jest jedyną pozycją na rynku w całości poświęconą wskaźnikom w języku C. To lektura obowiązkowa każdego programisty!
Poznaj:
- koncepcję wskaźników
- zastosowanie tablic wskaźników
- funkcje dynamicznego alokowania pamięci
- zagrożenia wynikające ze stosowania wskaźników
Odkryj tajniki wskaźników w języku C i wykorzystaj ich potencjał!
Osoby które kupowały "Wskaźniki w języku C. Przewodnik", wybierały także:
- Język C. Kurs video. Praktyczne wprowadzenie do programowania 99,00 zł, (29,70 zł -70%)
- Internet rzeczy. Podstawy programowania aplikacji i serwer 99,00 zł, (49,50 zł -50%)
- Nowoczesny C. Przegl 119,00 zł, (59,50 zł -50%)
- Efektywny C. Wprowadzenie do profesjonalnego programowania 69,00 zł, (34,50 zł -50%)
- Język C. Solidna wiedza w praktyce. Wydanie VIII 199,00 zł, (99,50 zł -50%)
Spis treści
Wskaźniki w języku C. Przewodnik -- spis treści
Przedmowa (9)
1. Wstęp (15)
- Wskaźniki i pamięć (16)
- Dlaczego warto opanować wskaźniki (17)
- Deklarowanie wskaźników (20)
- Interpretowanie deklaracji (22)
- Operator adresu (23)
- Wyświetlanie wartości wskaźników (24)
- Wyłuskiwanie wskaźnika za pomocą operatora adresowania pośredniego (26)
- Wskaźniki na funkcje (27)
- Pojęcie wartości null (27)
- Rodzaje wskaźników i ich rozmiary (32)
- Modele pamięci (32)
- Predefiniowane typy związane ze wskaźnikami (33)
- Operatory wskaźników (37)
- Arytmetyka wskaźnikowa (37)
- Porównywanie wskaźników (42)
- Zastosowania wskaźników (42)
- Wielopoziomowe adresowanie pośrednie (43)
- Stałe i wskaźniki (44)
- Podsumowanie (50)
2. C i dynamiczne zarządzanie pamięcią (51)
- Dynamiczna alokacja pamięci (52)
- Wycieki pamięci (55)
- Funkcje dynamicznego alokowania pamięci (57)
- Stosowanie funkcji malloc (58)
- Stosowanie funkcji calloc (62)
- Stosowanie funkcji realloc (63)
- Funkcja alloca i tablice o zmiennej długości (66)
- Dealokacja pamięci przy użyciu funkcji free (66)
- Przypisywanie wartości NULL do zwalnianego wskaźnika (68)
- Podwójne uwalnianie (68)
- Sterta i pamięć systemowa (70)
- Zwalnianie pamięci po zakończeniu działania programu (70)
- Wiszące wskaźniki (71)
- Przykłady wiszących wskaźników (71)
- Rozwiązywanie problemu wiszących wskaźników (74)
- Stosowanie wersji testowej do wykrywania wycieków pamięci (74)
- Techniki dynamicznej alokacji pamięci (75)
- Sprzątanie pamięci w języku C (76)
- Inicjowanie przy pozyskaniu zasobu (RAII) (76)
- Korzystanie z procedury obsługi wyjątków (77)
- Podsumowanie (78)
3. Wskaźniki i funkcje (79)
- Sterta i stos programu (80)
- Stos programu (80)
- Organizacja ramki stosu (81)
- Przekazywanie i zwracanie za pomocą wskaźnika (84)
- Stosowanie wskaźników do przekazywania danych (84)
- Przekazywanie danych poprzez wartość (85)
- Przekazywanie wskaźnika do stałej (86)
- Zwracanie wskaźnika (87)
- Wskaźniki do danych lokalnych (89)
- Przekazywanie pustych wskaźników (91)
- Przekazywanie wskaźnika do wskaźnika (91)
- Wskaźniki na funkcję (95)
- Deklarowanie wskaźników na funkcję (96)
- Stosowanie wskaźników na funkcję (97)
- Przekazywanie wskaźników na funkcję (99)
- Zwracanie wskaźników na funkcję (99)
- Stosowanie tablic wskaźników na funkcję (100)
- Porównywanie wskaźników na funkcję (101)
- Rzutowanie wskaźników na funkcję (102)
- Podsumowanie (103)
4. Wskaźniki i tablice (105)
- Tablice (106)
- Tablice jednowymiarowe (107)
- Tablice dwuwymiarowe (108)
- Tablice wielowymiarowe (109)
- Notacja wskaźnikowa i tablice (109)
- Różnice pomiędzy tablicami a wskaźnikami (112)
- Stosowanie funkcji malloc do tworzenia tablic jednowymiarowych (113)
- Stosowanie funkcji realloc do zmiany rozmiaru tablicy (114)
- Przekazywanie tablicy jednowymiarowej (118)
- Stosowanie notacji tablicowej (118)
- Stosowanie notacji wskaźnikowej (119)
- Stosowanie jednowymiarowych tablic wskaźników (120)
- Wskaźniki i tablice wielowymiarowe (122)
- Przekazywanie tablicy wielowymiarowej (125)
- Dynamiczna alokacja tablicy dwuwymiarowej (128)
- Alokowanie pamięci o potencjalnie nieciągłym obszarze (129)
- Alokacja pamięci o ciągłym obszarze (129)
- Tablice postrzępione i wskaźniki (131)
- Podsumowanie (135)
5. Wskaźniki i łańcuchy (137)
- Podstawowe wiadomości na temat wskaźników (138)
- Deklaracja łańcucha (139)
- Pula literałów łańcuchowych (139)
- Inicjalizacja łańcucha (141)
- Standardowe operacje wykonywane na łańcuchach (145)
- Porównywanie łańcuchów (145)
- Kopiowanie łańcuchów (147)
- Łączenie łańcuchów (149)
- Przekazywanie łańcuchów (153)
- Przekazywanie prostego łańcucha (153)
- Przekazywanie wskaźnika na stałą typu char (155)
- Przekazywanie wskaźnika wymagającego inicjalizacji (155)
- Przekazywanie argumentów do aplikacji (157)
- Zwracanie łańcuchów (158)
- Zwracanie adresu literału (158)
- Zwracanie adresu pamięci adresowanej dynamicznie (160)
- Wskaźniki na funkcje i łańcuchy (162)
- Podsumowanie (165)
6. Wskaźniki i struktury (167)
- Wstęp (168)
- Alokacja struktury w pamięci (169)
- Zagadnienia związane z dealokacją struktury (170)
- Unikanie narzutu wynikającego ze stosowania funkcji malloc i free (174)
- Stosowanie wskaźników do obsługi struktur danych (176)
- Jednostronna lista powiązana (177)
- Stosowanie wskaźników do obsługi kolejek (185)
- Stosowanie wskaźników do obsługi stosu (188)
- Stosowanie wskaźników do obsługi drzewa (190)
- Podsumowanie (194)
7. Problemy z zabezpieczeniami i niewłaściwe stosowanie wskaźników (195)
- Deklaracja i inicjalizacja wskaźników (197)
- Niewłaściwa deklaracja wskaźnika (197)
- Niepowodzenie inicjalizacji wskaźnika przed użyciem (198)
- Rozwiązywanie problemów z niezainicjalizowanymi wskaźnikami (198)
- Problemy wynikające ze stosowania wskaźników (199)
- Wykrywanie wartości zerowej (200)
- Niewłaściwe stosowanie operatora wyłuskiwania (201)
- Wiszące wskaźniki (201)
- Uzyskiwanie dostępu do pamięci znajdującej się poza granicami tablicy (202)
- Błędne obliczenie rozmiaru tablicy (203)
- Niewłaściwe stosowanie operatora sizeof (203)
- Zawsze dopasowuj do siebie typy wskaźników (204)
- Wskaźniki ograniczone (205)
- Problemy z zabezpieczeniami związane z łańcuchami (206)
- Arytmetyka wskaźnikowa i struktury (207)
- Problemy związane ze wskaźnikami na funkcję (209)
- Problemy związane z dealokacją pamięci (211)
- Dublowanie funkcji free (211)
- Czyszczenie danych wrażliwych (211)
- Stosowanie narzędzi analizy statycznej (212)
- Podsumowanie (213)
8. Pozostałe techniki (215)
- Rzutowanie wskaźników (216)
- Uzyskiwanie dostępu do adresu specjalnego przeznaczenia (217)
- Uzyskiwanie dostępu do portu (219)
- Uzyskiwanie dostępu do pamięci przy użyciu DMA (220)
- Określanie porządku bajtów danej maszyny (220)
- Aliasing wskaźników i słowo kluczowe restrict (221)
- Stosowanie unii do reprezentacji wartości na różne sposoby (223)
- Strict aliasing (225)
- Stosowanie słowa kluczowego restrict (226)
- Wątki i wskaźniki (227)
- Współdzielenie wskaźników przez wątki (228)
- Stosowanie wskaźników na funkcję do obsługi wywołań zwrotnych (231)
- Techniki obiektowe (233)
- Tworzenie i stosowanie wskaźników nieprzeźroczystych (233)
- Polimorfizm w języku C (237)
- Podsumowanie (242)
Skorowidz (243)