Rodzaje danych w "C". Programowanie w języku C "

Typy danych w C są klasą danych, których wartości mają zbliżoną charakterystykę. Typ określa wewnętrzną reprezentację danych w pamięci. Podstawowe typy danych: logiczne, całkowite, zmiennoprzecinkowe, łańcuchowe, wskaźniki.

Typyzacja

W przypadku dynamicznego wpisywania zmienna jest powiązana z typem w momencie inicjowania. Okazuje się, że zmienna w różnych częściach kodu może mieć różne typy. Dynamiczne pisanie jest obsługiwane przez Java Script, Python, Ruby, PHP. Pisanie statyczne jest przeciwieństwem dynamicznego. Gdy deklarowana jest zmienna, otrzymuje typ, który nie zmienia się w przyszłości. Języki C i C ++ są dokładnie tym. Ta metoda jest najwygodniejsza do pisania skomplikowanego kodu, a na etapie kompilacji wykluczonych jest wiele błędów.


Języki są nieformalnie podzielone na silnie typizowane i słabo typizowane. Silne pisanie zakłada, że ​​kompilator wygeneruje błąd, gdy typy oczekiwane i rzeczywiste są różne. x = 1 + "2"; //błąd - możesz dodać przykład nieprawidłowego pisania na klawiaturze. x = 1 + "2"; //3 Kontrole zgodności typów są przeprowadzane przez system bezpieczeństwa. Pisanie błędem występuje, na przykład, podczas próby użycia liczby jako funkcji. Istnieją niezarejestrowane języki. W przeciwieństwie do typowania, umożliwiają wykonywanie dowolnych operacji na każdym obiekcie.

Klasy pamięci

Zmienne, niezależnie od ich typu, mają swój zakres i czas istnienia.
Klasy pamięci:
  • samochód;
  • statyczny;
  • extern;
  • zarejestrować się.
  • Wszystkie zmienne w języku C dladomyślne są lokalne. Mogą być używane tylko w ramach funkcji lub bloku. Po zakończeniu funkcji ich wartość ulega zniszczeniu. Zmienna statyczna jest również lokalna, ale poza jej blokiem może mieć inną wartość, a pomiędzy wywołaniami funkcji wartość jest zachowywana. Zmienna zewnętrzna jest globalna. Jest dostępny w dowolnej części kodu, a nawet w innym pliku. Zmienna rejestru zaleca przechowywanie wartości kompilatora w pamięci RAM. Typy danych specifier w C nie są wskazane w następujących przypadkach:
  • Wszystkie zmienne bloku nie jest wymienny, odpowiednio, jeżeli przewiduje stosowanie tej klasy pamięci, auto spetsyfykator nie podano.
  • Wszystkie funkcje zadeklarowane poza blokiem lub funkcją są domyślnie globalne, więc zewnętrzny specyfikator jest opcjonalny.
  • Typy podstawowe

    Określa int, char, float i double dla specyfikacji typów prostych. Zmienne można zastąpić nie podpisanym modyfikatorem, znakiem, znakiem, krótkim, długim, długim.

    Domyślnie wszystkie liczby są podpisane, odpowiednio, mogą być w zakresie tylko dodatnich liczb. Aby określić znakową zmienną char jako znak, podpisany znak zostanie zapisany. Długie, długie długie i krótkie wskazują ilość miejsca w pamięci do przechowywania. Najczęściej - długo, najmniej - krótko. Char to najmniejszy typ danych w języku C. Aby zapisać wartości, przydzielany jest tylko 1 bajt pamięci. Zmienne typy znaków są zwykle przypisywane symbolom, rzadko - liczbom. Wartości symboliczne są w cudzysłowach. char a = a "; char b = 2; Wpisz int przechowuje liczby całkowite, jegorozmiar nie jest zdefiniowany, zajmuje do 4 bajtów pamięci, w zależności od architektury komputera. int a = 12; Wyraźna konwersja niepodpisanej zmiennej jest następująca: unsigned int a = 12; Implicit wygląda następująco: int a = 12u; Pływak i podwójne zdefiniuj liczby za pomocą kropki. Liczby zmiennoprzecinkowe są przedstawione jako -2,3 lub 334. Podwójna służy do większej dokładności - po ograniczniku całości i części ułamkowej jest więcej cyfr. Ten typ zajmuje więcej miejsca na dysku niż zmiennoprzecinkowe.
    podwójne a = 124567; Void ma pustą wartość. Definiuje funkcje, które niczego nie zwracają. Specyfikator ten określa pustą wartość w argumentach metody. Wskaźniki, które akceptują wszelkiego rodzaju dane, są również uznawane za nieważne.

    Logical Type Bool

    Służy do sprawdzania warunków i cykli. Ma tylko dwa znaczenia:
  • prawda;
  • kłamią.
  • Wartości logiczne można konwertować na wartości int. Prawda jest równa jednemu, fałsz - zero. Konwersja typów odbywa się tylko między bool i int, w przeciwnym razie kompilator wygeneruje błąd. int x = 123; if (x) {//Błąd: "Nie można niejawnie przekonwertować typu" int "na" bool ""}; if (x! = 0) //Sposób C # {}

    Linie i tablice

    Tablice należą do złożonych typów danych w C. MP nie działa z łańcuchami, tak jak robi to JavaScript lub Ruby. W języku C wszystkie wiersze są tablicami elementów symbolicznych. Linie kończą się zerowym bajtem "".

    Komunikaty linii C: char b [] = {'s', t, r, i, n, g i}; Linia jest również ogłaszana w zwięzłej formie. char a [] = "string"; a

    === b

    ; //'t' Tablice liczb całkowitych lub znaków są zadeklarowane w ten sam sposób: wpisznazwa zmiennej danych [rozmiar tablicy]. int a [100]; char b
    ; Podobna składnia wskazuje, że rozmiar wartości int nie może być większy niż 100 znaków. Podczas tworzenia tablicy pewna liczba komórek jest przechowywana w pamięci do przechowywania przedmiotów. Dlatego pamięć jest dynamicznie przydzielana do przetwarzania macierzy danych o nieznanym wymiarze lub do zmiany. Wielowymiarowe tablice są zadeklarowane w następujący sposób: int a

    ; Podczas tworzenia tej tablicy miejsce jest przydzielane, w tym przypadku, do przechowywania dwóch zagnieżdżonych tablic składających się z trzech elementów. Inicjalizacja tablicy wielowymiarowej: int a

    = {123 456}; a

    ; //[1, 2, 3] a
    ; //[4, 5, 6]

    Wskaźniki linków

    Wskaźniki są główną cechą tego języka, oferują ogromne możliwości pracy z pamięcią. Przesyłają informacje o lokalizacji innej zmiennej w pamięci. Przed użyciem są one, podobnie jak inne zmienne, zadeklarowane jako wskaźnik typu *. Typ - typ zmiennej, wskaźnik - nazwa wskaźnika.
    Aby określić wskaźnik do wartości innej zmiennej, używane są referencje. Przesyłają one adres zmiennej i są używane jako bezpieczny indeks. int a = 2; int * wskaźnik; wskaźnik = i amp; Łącza umożliwiają pracę ze wskaźnikiem, tak jak z obiektem.
    W tym przypadku & amp; zwróci 0x7340cad2a25c, * wskaźnik - 2, ale wskaźnik bez "*" - 0x7340cad2a25c. Zmieniając wartość, nie zmieniamy jej adresu, więc wskaźnik będzie również odnosił się do 0x7340cad2a25c, ale zmieni to jego znaczenie. Wskaźnik do innego wskaźnika deklarowany jest w postaci int w = 100; int * x = & amp; w; int ** z = & amp; x; Wskaźnik do tablicy działa nieco inaczej.int c
    = [1, 2, 3, 4, 5], * a; Zadeklarowaliśmy tablicę liczb całkowitych i indeks int a. W tym przypadku wskaźnik wskazuje nie samą tablicę, ale tylko jej pierwszy element. Zatem a = c; i a = i c ; //1 są sobie równe. Teraz możesz odnieść się do trzeciego elementu tablicy, używając wyrażenia * (a + 3) lub
    ; W powyższym przykładzie można zauważyć, że dodawanie wskaźników działa inaczej. Można do nich zastosować różne operacje arytmetyczne. Wskaźnik do tablicy jest oznaczony w następujący sposób: char (* pa) ; Ale tablica wskaźników wygląda następująco: char * pc ;

    Struktury

    Struktura - rodzaj danych w języku C ułatwiający pisanie i zrozumienie programów pomaga w grupowaniu danych.
    Struktura próbki macierzy reprezentuje zbiór danych, ale jej elementy mogą być różnych typów, a konwersja odbywa się według nazwy, a nie według indeksu. {nazwa zmiennej 1 typu 1; typ1 nazwa zmiennej1; //inni członkowie danych; } Deklaracja zmiennej strukturalnej występuje po zamknięciu nawiasów klamrowych. struct book {char title
    ; autor char
    ; podwójna obsada; } book1 book2 * ptr_bk; Pola są dostępne przez operatora ".". Aby odnieść się do zmiennej tytułowej, napisz: book1.title; Dlatego zainicjuj zmienną book1.title = "String"; Operator "->" jest używany do wskazywania wskaźnika. ptr_bk-> cast; lub operator ".". (* (ptr_bk)). cast; Drugi rodzaj list z danymi to enum (enum). Zawiera zmienne liczb całkowitych. enum {red, blue, green}; W tym przykładzie deklarowany jest anonimowy transfer zawierający trzy elementy: czerwony, niebieski, zielony. Przed uzyskaniem dostępu do elementów deklarowana jest zmienna wyliczeniowa. enum name1 {red,niebieski, czerwony} będziemy wymieniać; W tym przypadku nazwa1 to nazwa przelewu, a nazwa_zmienki to nazwa zmiennej. W momencie tworzenia struktury można określić kilka zmiennych. Są one przesyłane przecinkami. enum name1 {czerwony, niebieski, czerwony} nazwa_zmiennej1 nazwa_zmiennej2 nazwa_zmiennej3; Dostęp do członków transferu jest przyznawany za pomocą "." Opether. varname.red = "red";

    Podsumowanie

    Język C zapewnia duży zbiór typów. Są one tworzone przy pomocy odpowiednich specyfikatorów. Podstawowe typy są podzielone na liczby (podwójne, zmiennoprzecinkowe) i znaki (int, char). Modyfikatory podpisane i niepodpisane wskazują na obecność znaku przed symbolem. Modyfikatory są długie i odpowiadają za wielkość komórek w pamięci w celu zapisania wartości zmiennych. Logiczny typ danych ma dwie wartości: true i false. Tablice, struktury są złożonymi typami danych. Wskaźnik działa z adresem zmiennej, do której się odnosi.

    Powiązane publikacje