czwartek, 26 kwietnia 2018

Język C - Typy danych

C - Typy danych

Typy danych w języku C odnoszą się do rozbudowanego systemu służącego do deklarowania zmiennych lub funkcji różnych typów. Typ zmiennej określa, ile zajmuje zajmowanego miejsca w pamięci i jak interpretowany jest zapisany wzór bitowy.
Typy w C można sklasyfikować w następujący sposób:
L. p.
Rodzaje i opis
1
Podstawowe typy
Są to typy arytmetyczne i są dalej klasyfikowane jako: (a) typ całkowity (integer) i (b) typy zmiennoprzecinkowe (floating).
2
Typy wyliczeniowe
Są to znowu typy arytmetyczne i służą do definiowania zmiennych, które mogą przypisywać tylko niektóre dyskretne wartości całkowite w całym programie.
3
Typ void
Specyfikator typu void wskazuje, że żadna wartość nie jest dostępna.
4
Rodzaje pochodne
Obejmują one (a) typy wskaźników, (b) typy tablic, (c) typy struktur, (d) typy związków i (e) typy funkcji.
Typy tablic i typy struktur są nazywane łącznie jako typy agregatów. Typ funkcji określa typ zwracanej wartości funkcji. Zobaczymy podstawowe typy w następnej sekcji, gdzie inne typy będą omówione w kolejnych rozdziałach.

Typy całkowite

Poniższa tabela zawiera szczegóły standardowych typów całkowitych wraz z ich rozmiarami i zakresami pamięci -
Rodzaj
Rozmiar pamięci
Zakres wartości
char
1 bajt
-128 do 127 lub od 0 do 255
unsigned char
1 bajt
0 do 255
signed char
1 bajt
-128 do 127
int
2 lub 4 bajty
-32,768 do 32 767 lub -2,147,483,648 do 2 147 483 647
unsigned int
2 lub 4 bajty
0 do 65 535 lub 0 do 4 294 967 295
short
2 bajty
-32 768 do 32 767
unsigned short
2 bajty
0 do 65 535
long
4 bajty
-2 147 448 648 do 2 147 483 647
unsigned long
4 bajty
0 do 4 294 967 295
Aby uzyskać dokładny rozmiar typu lub zmiennej na konkretnej platformie, możesz użyć operatora sizeof. Wyrażenia sizeof (type) podaje rozmiar pamięci obiektu lub typu w bajtach. Poniżej znajduje się przykład, aby uzyskać rozmiar typu int na dowolnej maszynie -
#include <stdio.h>
#include <limits.h>

int main() {
   printf("Rozmiar pamięci dla int : %d \n", sizeof(int));
  
   return 0;
}
Kiedy skompilujesz i wykonasz powyższy program, uzyskasz następujący wynik:
Rozmiar pamięci dla int : 4

Typy zmiennoprzecinkowe

Poniższa tabela zawiera szczegóły standardowych typów zmiennoprzecinkowych z rozmiarami pamięci i zakresami wartości oraz ich dokładnością -
Rodzaj
Rozmiar
 pamięci
Zakres
wartości
Precyzja
float
4 bajty
1.2E-38 do 3.4E + 38
6 miejsc
dziesiętnych
double
8 bajtów
2.3E-308 do 1.7E + 308
15 miejsc
 po przecinku
long double
10 bajtów
3.4E-4932 do 1.1E + 4932
19 miejsc
 po przecinku

Plik nagłówkowy float.h definiuje makra, które pozwalają ci używać tych wartości i inne szczegóły na temat binarnej reprezentacji liczb rzeczywistych w twoich programach. W poniższym przykładzie wypisywana jest pamięć zajmowana przez typ zmiennoprzecinkowy i jej wartości zakresu -
#include <stdio.h>
#include <float.h>

int main() {
   printf("Rozmiar pamięci dla float : %d \n", sizeof(float));
   printf("Minimalna wartość dodatnia float: %E\n", FLT_MIN );
   printf("Maksymalna wartość dodatnia float: %E\n", FLT_MAX );
   printf("Precyzja: %d\n", FLT_DIG );
  
   return 0;
}
Kiedy skompilujesz i wykonasz powyższy program, uzyskasz następujący wynik:
Rozmiar pamięci dla float : 4
Minimalna wartość dodatnia float: 1.175494E-38
Maksymalna wartość dodatnia float: 3.402823E+38
Precyzja: 6

Typ void

Typ void określa, że ​​żadna wartość nie jest dostępna. Jest stosowany w trzech rodzajach sytuacji -
L. p.
Rodzaje i opis
1
Funkcja zwraca void
W C istnieją różne funkcje, które nie zwracają żadnej wartości lub możesz powiedzieć, że zwracają puste dane. Funkcja bez wartości zwracanej ma typ powrotu jako void. Na przykład, void exit (int status);
2
Argumenty funkcji są void
W C istnieją różne funkcje, które nie akceptują żadnego parametru. Funkcja bez parametru może zaakceptować typ void. Na przykład int rand (void);
3
Wskaźniki void
Wskaźnik typu void * reprezentuje adres obiektu, ale nie jego typ. Na przykład funkcja alokacji pamięci void * malloc(size_t size); zwraca wskaźnik void, który może być rzutowany na dowolny typ danych.

Poprzednia strona                                                          Następna strona


Brak komentarzy:

Prześlij komentarz