logo

Vrste podataka u C-u

Vrsta podataka specificira vrstu podataka koje varijabla može pohraniti kao što su cijeli broj, plutajući, znakovi itd.

C Tipovi podataka

U jeziku C postoje sljedeći tipovi podataka.

VrsteVrste podataka
Osnovni tip podatakaint, char, float, dvostruko
Izvedena vrsta podatakaniz, pokazivač, struktura, unija
Tip podataka nabrajanjanabrajanje
Vrsta podataka Voidponištiti

Osnovni tipovi podataka

Osnovni tipovi podataka temelje se na cijelom broju i na pokretnom zarezu. C jezik podržava i znakovne i nepredpisane literale.

Veličina memorije osnovnih vrsta podataka može se promijeniti ovisno o 32-bitnom ili 64-bitnom operativnom sustavu.

mikrolitička jezgra

Pogledajmo osnovne tipove podataka. Njegova veličina je dana prema 32-bitnoj arhitekturi .

Vrste podatakaVeličina memorijeRaspon
char 1 bajt−128 do 127
signed char1 bajt−128 do 127
unsigned char1 bajt0 do 255
kratak 2 bajta−32.768 do 32.767
potpisan kratak2 bajta−32.768 do 32.767
nepotpisani kratki2 bajta0 do 65,535
int 2 bajta−32.768 do 32.767
potpisan međ2 bajta−32.768 do 32.767
nepotpisani int2 bajta0 do 65,535
kratki int 2 bajta−32.768 do 32.767
potpisan kratki međ2 bajta−32.768 do 32.767
nepotpisani kratki međ2 bajta0 do 65,535
dugo int 4 bajta-2.147.483.648 do 2.147.483.647
potpisan dug int4 bajta-2.147.483.648 do 2.147.483.647
unsigned long int4 bajta0 do 4,294,967,295
plutati 4 bajta
dvostruko 8 bajtova
duga dvostruka 10 bajtova

Int:

Cijeli brojevi su cijeli brojevi bez razlomaka ili decimalnih dijelova, i int tip podataka koristi se za njihovo predstavljanje.

Često se primjenjuje na varijable koje uključuju vrijednosti , kao što je broji, indeksi , ili druge numeričke brojeve. The int tip podataka može predstavljati oboje pozitivan i negativni brojevi jer je zadano potpisan.

An int zauzima 4 bajta memorije na većini uređaja, što mu omogućuje pohranu vrijednosti između oko -2 milijarde i +2 milijarde.

znak:

Pojedinačni likovi predstavljeni su pomoću tip podataka char . Obično se koristi za držanje ASCII ili UTF-8 znakovi sheme kodiranja , kao što je slova, brojke, simboli , ili zarezima . Tamo su 256 znakova koji se može predstaviti jednim znakom, koji zauzima jedan bajt memorije. Likovi kao što su 'A', 'b', '5', ili '$' nalaze se u jednostrukim navodnicima.

Plutati:

Za predstavljanje cijelih brojeva, koristite plutajući tip podataka . Plutajući brojevi mogu se koristiti za predstavljanje razlomaka ili brojeva s decimalnim mjestima.

The tip plovka obično se koristi za varijable koje zahtijevaju vrlo dobru preciznost, ali ne moraju biti vrlo precizne. Može pohraniti vrijednosti s točnošću od oko 6 decimalnih mjesta i raspon od oko 3,4 x 1038 u 4 bajta pamćenja.

Dvostruko:

Koristite dvije vrste podataka za predstavljanje dva plutajuća cijela broja . Kada je potrebna dodatna preciznost, primjerice u znanstvenim izračunima ili financijskim primjenama, pruža veću točnost u usporedbi s float.

Dvostruki tip , koji koristi 8 bajtova memorije i ima točnost od oko 15 decimalnih mjesta, daje veće vrijednosti . C prema zadanim postavkama tretira brojeve s pomičnim zarezom kao dvostruke ako nije naveden eksplicitni tip.

 int age = 25; char grade = 'A'; float temperature = 98.6; double pi = 3.14159265359; 

U gornjem primjeru deklariramo četiri varijable: an int varijabla za dob osobe, a char varijabla za ocjenu učenika, a float varijabla za očitavanje temperature i dvije varijable za broj pi.

Izvedena vrsta podataka

Osim osnovnih tipova podataka, C također podržava izvedeni tipovi podataka, uključujući nizovi, pokazivači, strukture, i sindikati . Ove vrste podataka programerima daju mogućnost rukovanja heterogenim podacima, izravne izmjene memorije i izgradnje kompliciranih struktura podataka.

null provjera u Javi

niz:

An niz, izvedeni tip podataka , omogućuje pohranjivanje niza elementi fiksne veličine istog tipa. Pruža mehanizam za spajanje više ciljeva istih podataka pod istim imenom.

Indeks se koristi za pristup elementima niza, s a 0 indeks za prvi unos. Veličina niza je fiksna u trenutku deklaracije i ne može se mijenjati tijekom izvođenja programa. Komponente niza smještene su u susjedna memorijska područja.

Evo primjera deklariranja i korištenja niza:

 #include int main() { int numbers[5]; // Declares an integer array with a size of 5 elements // Assign values to the array elements numbers[0] = 10; numbers[1] = 20; numbers[2] = 30; numbers[3] = 40; numbers[4] = 50; // Display the values stored in the array printf(&apos;Values in the array: &apos;); for (int i = 0; i <5; i++) { printf('%d ', numbers[i]); } printf('
'); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Values in the array: 10 20 30 40 50 </pre> <h3>Pointer:</h3> <p>A <strong> <em>pointer</em> </strong> is a derived data type that keeps track of another data type&apos;s memory address. When a <strong> <em>pointer</em> </strong> is declared, the <strong> <em>data type</em> </strong> it refers to is <strong> <em>stated first</em> </strong> , and then the <strong> <em>variable name</em> </strong> is preceded by <strong> <em>an asterisk (*)</em> </strong> .</p> <p>You can have incorrect access and change the value of variable using pointers by specifying the memory address of the variable. <strong> <em>Pointers</em> </strong> are commonly used in <strong> <em>tasks</em> </strong> such as <strong> <em>function pointers, data structures</em> </strong> , and <strong> <em>dynamic memory allocation</em> </strong> .</p> <p>Here is an example of declaring and employing a pointer:</p> <pre> #include int main() { int num = 42; // An integer variable int *ptr; // Declares a pointer to an integer ptr = # // Assigns the address of &apos;num&apos; to the pointer // Accessing the value of &apos;num&apos; using the pointer printf(&apos;Value of num: %d
&apos;, *ptr); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Value of num: 42 </pre> <h3>Structure:</h3> <p>A structure is a derived data type that enables the creation of composite data types by allowing the grouping of many data types under a single name. It gives you the ability to create your own unique data structures by fusing together variables of various sorts.</p> <ol class="points"> <li>A structure&apos;s members or fields are used to refer to each variable within it.</li> <li>Any data type, including different structures, can be a member of a structure.</li> <li>A structure&apos;s members can be accessed by using the dot (.) operator.</li> </ol> <p>A declaration and use of a structure is demonstrated here:</p> <pre> #include #include // Define a structure representing a person struct Person { char name[50]; int age; float height; }; int main() { // Declare a variable of type struct Person struct Person person1; // Assign values to the structure members strcpy(person1.name, &apos;John Doe&apos;); person1.age = 30; person1.height = 1.8; // Accessing the structure members printf(&apos;Name: %s
&apos;, person1.name); printf(&apos;Age: %d
&apos;, person1.age); printf(&apos;Height: %.2f
&apos;, person1.height); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Name: John Doe Age: 30 Height: 1.80 </pre> <h3>Union:</h3> <p>A derived data type called a <strong> <em>union</em> </strong> enables you to store various data types in the same memory address. In contrast to structures, where each member has a separate memory space, members of a union all share a single memory space. A value can only be held by one member of a union at any given moment. When you need to represent many data types interchangeably, unions come in handy. Like structures, you can access the members of a union by using the <strong> <em>dot (.)</em> </strong> operator.</p> <p>Here is an example of a union being declared and used:</p> <pre> #include // Define a union representing a numeric value union NumericValue { int intValue; float floatValue; char stringValue[20]; }; int main() { // Declare a variable of type union NumericValue union NumericValue value; // Assign a value to the union value.intValue = 42; // Accessing the union members printf(&apos;Integer Value: %d
&apos;, value.intValue); // Assigning a different value to the union value.floatValue = 3.14; // Accessing the union members printf(&apos;Float Value: %.2f
&apos;, value.floatValue); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Integer Value: 42 Float Value: 3.14 </pre> <h2>Enumeration Data Type</h2> <p>A set of named constants or <strong> <em>enumerators</em> </strong> that represent a collection of connected values can be defined in C using the <strong> <em>enumeration data type (enum). Enumerations</em> </strong> give you the means to give names that make sense to a group of integral values, which makes your code easier to read and maintain. </p> <p>Here is an example of how to define and use an enumeration in C:</p> <pre> #include // Define an enumeration for days of the week enum DaysOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int main() { // Declare a variable of type enum DaysOfWeek enum DaysOfWeek today; // Assign a value from the enumeration today = Wednesday; // Accessing the enumeration value printf(&apos;Today is %d
&apos;, today); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Today is 2 </pre> <h2>Void Data Type</h2> <p>The <strong> <em>void data type</em> </strong> in the C language is used to denote the lack of a particular type. <strong> <em>Function return types, function parameters</em> </strong> , and <strong> <em>pointers</em> </strong> are three situations where it is frequently utilized.</p> <h3>Function Return Type:</h3> <p>A <strong> <em>void return type</em> </strong> function does not produce a value. A <strong> <em>void function</em> </strong> executes a task or action and ends rather than returning a value.</p> <p> <strong>Example:</strong> </p> <pre> void printHello() { printf(&apos;Hello, world!
&apos;); } </pre> <h3>Function Parameters: </h3> <p>The <strong> <em>parameter void</em> </strong> can be used to indicate that a function accepts no arguments.</p> <p> <strong>Example:</strong> </p> <pre> void processInput(void) { /* Function logic */ } </pre> <h3>Pointers:</h3> <p>Any address can be stored in a pointer of type <strong> <em>void*</em> </strong> , making it a universal pointer. It offers a method for working with pointers to ambiguous or atypical types.</p> <p> <strong>Example:</strong> </p> <pre> void* dataPtr; </pre> <p>The <strong> <em>void data type</em> </strong> is helpful for defining functions that don&apos;t accept any arguments when working with generic pointers or when you wish to signal that a function doesn&apos;t return a value. It is significant to note that while <strong> <em>void*</em> </strong> can be used to build generic pointers, void itself cannot be declared as a variable type.</p> <p>Here is a sample of code that shows how to utilize void in various situations:</p> <pre> #include // Function with void return type void printHello() { printf(&apos;Hello, world!
&apos;); } // Function with void parameter void processInput(void) { printf(&apos;Processing input...
&apos;); } int main() { // Calling a void function printHello(); // Calling a function with void parameter processInput(); // Using a void pointer int number = 10; void* dataPtr = &amp;number; printf(&apos;Value of number: %d
&apos;, *(int*)dataPtr); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Hello, world! Processing input... Value of number: 10 </pre> <h2>Conclusion:</h2> <p>As a result, <strong> <em>data types</em> </strong> are essential in the C programming language because they define the kinds of information that variables can hold. They provide the data&apos;s size and format, enabling the compiler to allot memory and carry out the necessary actions. Data types supported by C include <strong> <em>void, enumeration, derived</em> </strong> , and <strong> <em>basic types</em> </strong> . In addition to floating-point types like <strong> <em>float</em> </strong> and <strong> <em>double</em> </strong> , basic data types in C also include integer-based kinds like <strong> <em>int, char</em> </strong> , and <strong> <em>short</em> </strong> . These forms can be <strong> <em>signed</em> </strong> or <strong> <em>unsigned</em> </strong> , and they fluctuate in size and range. To create dependable and efficient code, it is crucial to comprehend the memory size and scope of these types.</p> <p>A few examples of <strong> <em>derived data types</em> </strong> are <strong> <em>unions, pointers, structures</em> </strong> , and <strong> <em>arrays</em> </strong> . Multiple elements of the same kind can be stored together in contiguous memory due to arrays. <strong> <em>Pointers</em> </strong> keep track of memory addresses, allowing for fast data structure operations and dynamic memory allocation. While <strong> <em>unions</em> </strong> allow numerous variables to share the same memory space, structures group relevant variables together.</p> <p> <strong> <em>Code</em> </strong> becomes more legible and maintainable when named constants are defined using enumeration data types. <strong> <em>Enumerations</em> </strong> give named constants integer values to enable the meaningful representation of related data. The void data type indicates the lack of a particular type. It is used as a return type for both <strong> <em>functions</em> </strong> and <strong> <em>function parameters</em> </strong> that don&apos;t take any arguments and don&apos;t return a value. The <strong> <em>void* pointer</em> </strong> also functions as a general pointer that can <strong> <em>store addresses</em> </strong> of various types.</p> <p>C programming requires a solid understanding of <strong> <em>data types</em> </strong> . Programmers can ensure adequate memory allocation, avoid <strong> <em>data overflow</em> </strong> or <strong> <em>truncation</em> </strong> , and enhance the readability and maintainability of their code by selecting the right <strong> <em>data type</em> </strong> . C programmers may create <strong> <em>effective, dependable</em> </strong> , and well-structured code that satisfies the requirements of their applications by having a firm understanding of data types.</p> <hr></5;>

Pokazivač:

A pokazivač je izvedeni tip podataka koji prati memorijsku adresu drugog tipa podataka. Kad pokazivač je proglašen, tip podataka to se odnosi na je navedeno prvo , a zatim naziv varijable prethodi zvjezdica (*) .

Možete imati pogrešan pristup i promijeniti vrijednost varijable pomoću pokazivača navođenjem memorijske adrese varijable. Pokazivači se obično koriste u zadaci kao npr pokazivači funkcija, strukture podataka , i dinamička dodjela memorije .

Evo primjera deklariranja i korištenja pokazivača:

 #include int main() { int num = 42; // An integer variable int *ptr; // Declares a pointer to an integer ptr = # // Assigns the address of &apos;num&apos; to the pointer // Accessing the value of &apos;num&apos; using the pointer printf(&apos;Value of num: %d
&apos;, *ptr); return 0; } 

Izlaz:

 Value of num: 42 

Struktura:

Struktura je izvedeni tip podataka koji omogućuje stvaranje složenih tipova podataka dopuštajući grupiranje mnogih tipova podataka pod jednim imenom. Daje vam mogućnost stvaranja vlastitih jedinstvenih struktura podataka spajanjem varijabli različitih vrsta.

puni oblik i d e
  1. Članovi strukture ili polja koriste se za upućivanje na svaku varijablu unutar nje.
  2. Svaki tip podataka, uključujući različite strukture, može biti član strukture.
  3. Članovima strukture može se pristupiti korištenjem operatora točka (.).

Ovdje je prikazana deklaracija i upotreba strukture:

 #include #include // Define a structure representing a person struct Person { char name[50]; int age; float height; }; int main() { // Declare a variable of type struct Person struct Person person1; // Assign values to the structure members strcpy(person1.name, &apos;John Doe&apos;); person1.age = 30; person1.height = 1.8; // Accessing the structure members printf(&apos;Name: %s
&apos;, person1.name); printf(&apos;Age: %d
&apos;, person1.age); printf(&apos;Height: %.2f
&apos;, person1.height); return 0; } 

Izlaz:

 Name: John Doe Age: 30 Height: 1.80 

Unija:

Izvedeni tip podataka nazvan a unija omogućuje pohranjivanje različitih tipova podataka na istu memorijsku adresu. Za razliku od struktura, gdje svaki član ima zaseban memorijski prostor, svi članovi sindikata dijele jedan memorijski prostor. Vrijednost može imati samo jedan član sindikata u bilo kojem trenutku. Kada trebate naizmjenično predstavljati mnoge tipove podataka, unije su korisne. Kao i strukturama, možete pristupiti članovima sindikata pomoću točka (.) operater.

Evo primjera unije koja se deklarira i koristi:

 #include // Define a union representing a numeric value union NumericValue { int intValue; float floatValue; char stringValue[20]; }; int main() { // Declare a variable of type union NumericValue union NumericValue value; // Assign a value to the union value.intValue = 42; // Accessing the union members printf(&apos;Integer Value: %d
&apos;, value.intValue); // Assigning a different value to the union value.floatValue = 3.14; // Accessing the union members printf(&apos;Float Value: %.2f
&apos;, value.floatValue); return 0; } 

Izlaz:

 Integer Value: 42 Float Value: 3.14 

Tip podataka nabrajanja

Skup imenovanih konstanti ili popisivači koje predstavljaju skup povezanih vrijednosti mogu se definirati u C-u pomoću tip podataka za nabrajanje (enum). Nabrajanja daju vam sredstva za davanje imena koja imaju smisla za grupu integralnih vrijednosti, što čini vaš kod lakšim za čitanje i održavanje.

Evo primjera kako definirati i koristiti enumeraciju u C-u:

 #include // Define an enumeration for days of the week enum DaysOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int main() { // Declare a variable of type enum DaysOfWeek enum DaysOfWeek today; // Assign a value from the enumeration today = Wednesday; // Accessing the enumeration value printf(&apos;Today is %d
&apos;, today); return 0; } 

Izlaz:

 Today is 2 

Vrsta podataka Void

The void tip podataka u jeziku C koristi se za označavanje nedostatka određenog tipa. Vrste povrata funkcije, parametri funkcije , i pokazivači tri su situacije u kojima se često koristi.

js onload

Vrsta povrata funkcije:

A void povratni tip funkcija ne proizvodi vrijednost. A funkcija praznine izvršava zadatak ili radnju i završava umjesto vraćanja vrijednosti.

Primjer:

 void printHello() { printf(&apos;Hello, world!
&apos;); } 

Parametri funkcije:

The parametar void može se koristiti za označavanje da funkcija ne prihvaća argumente.

Primjer:

 void processInput(void) { /* Function logic */ } 

Pokazivači:

Bilo koja adresa može biti pohranjena u pokazivač tipa poništiti* , što ga čini univerzalnim pokazivačem. Nudi metodu za rad s pokazivačima na dvosmislene ili netipične tipove.

reagirati umetnuti stil

Primjer:

 void* dataPtr; 

The void tip podataka je od pomoći za definiranje funkcija koje ne prihvaćaju nikakve argumente kada radite s generičkim pokazivačima ili kada želite signalizirati da funkcija ne vraća vrijednost. Značajno je napomenuti da dok poništiti* može se koristiti za izgradnju generičkih pokazivača, sam void ne može se deklarirati kao tip varijable.

Ovdje je primjer koda koji pokazuje kako iskoristiti void u različitim situacijama:

 #include // Function with void return type void printHello() { printf(&apos;Hello, world!
&apos;); } // Function with void parameter void processInput(void) { printf(&apos;Processing input...
&apos;); } int main() { // Calling a void function printHello(); // Calling a function with void parameter processInput(); // Using a void pointer int number = 10; void* dataPtr = &amp;number; printf(&apos;Value of number: %d
&apos;, *(int*)dataPtr); return 0; } 

Izlaz:

 Hello, world! Processing input... Value of number: 10 

Zaključak:

Kao rezultat, tipovi podataka ključni su u programskom jeziku C jer definiraju vrste informacija koje varijable mogu sadržavati. Oni daju veličinu i format podataka, omogućujući kompajleru da dodijeli memoriju i provede potrebne radnje. Tipovi podataka koje C podržava uključuju praznina, nabrajanje, izvedeno , i osnovne vrste . Osim tipova s ​​pomičnim zarezom poput plutati i dvostruko , osnovni tipovi podataka u C-u također uključuju vrste temeljene na cjelobrojnim brojevima kao što su int, char , i kratak . Ovi oblici mogu biti potpisan ili nepotpisan , a variraju u veličini i rasponu. Za stvaranje pouzdanog i učinkovitog koda, ključno je razumjeti veličinu memorije i opseg ovih vrsta.

Nekoliko primjera izvedeni tipovi podataka su sindikati, pokazivači, strukture , i nizovi . Višestruki elementi iste vrste mogu se pohraniti zajedno u neprekidnoj memoriji zahvaljujući nizovima. Pokazivači pratiti memorijske adrese, omogućujući brze operacije strukture podataka i dinamičku dodjelu memorije. Dok sindikati omogućuju brojnim varijablama da dijele isti memorijski prostor, strukture grupiraju relevantne varijable zajedno.

Kodirati postaje čitljiviji i lakši za održavanje kada se imenovane konstante definiraju korištenjem tipova podataka nabrajanja. Nabrajanja dajte imenovanim konstantama cjelobrojne vrijednosti kako biste omogućili smisleno predstavljanje povezanih podataka. Vrsta podataka void ukazuje na nedostatak određene vrste. Koristi se kao tip povrata za oba funkcije i parametri funkcije koji ne uzimaju nikakve argumente i ne vraćaju vrijednost. The praznina* pokazivač također funkcionira kao opći pokazivač koji može adrese trgovina raznih vrsta.

C programiranje zahtijeva solidno razumijevanje tipovi podataka . Programeri mogu osigurati odgovarajuću raspodjelu memorije, izbjegavati preljev podataka ili skraćivanje , te poboljšati čitljivost i mogućnost održavanja njihovog koda odabirom pravog tip podataka . C programeri mogu stvarati učinkovit, pouzdan , i dobro strukturirani kod koji zadovoljava zahtjeve njihovih aplikacija tako što ima čvrsto razumijevanje tipova podataka.