logo

Vrste podatkov v C

Podatkovni tip določa vrsto podatkov, ki jih lahko shrani spremenljivka, na primer celo število, plavajoče, znake itd.

C Podatkovni tipi

V jeziku C obstajajo naslednji tipi podatkov.

VrsteVrste podatkov
Osnovni podatkovni tipint, char, float, dvojno
Izpeljani podatkovni tipmatrika, kazalec, struktura, zveza
Podatkovni tip naštevanjaenum
Prazen podatkovni tippraznina

Osnovni podatkovni tipi

Osnovni podatkovni tipi temeljijo na celih številih in na plavajoči vejici. Jezik C podpira predznačene in nepodznačene literale.

Velikost pomnilnika osnovnih tipov podatkov se lahko spreminja glede na 32- ali 64-bitni operacijski sistem.

seznam proti naboru v Javi

Oglejmo si osnovne vrste podatkov. Njegova velikost je podana glede na 32-bitno arhitekturo .

Vrste podatkovVelikost pomnilnikaRazpon
char 1 bajt−128 do 127
podpisani znak1 bajt−128 do 127
nepredpisan znak1 bajt0 do 255
kratek 2 bajta−32.768 do 32.767
podpisano kratko2 bajta−32.768 do 32.767
unsigned short2 bajta0 do 65.535
int 2 bajta−32.768 do 32.767
podpisan medn2 bajta−32.768 do 32.767
nepodpisano int2 bajta0 do 65.535
kratka notr 2 bajta−32.768 do 32.767
podpisana kratka medn2 bajta−32.768 do 32.767
nepredznačeno kratko notr2 bajta0 do 65.535
dolgo int 4 bajti-2.147.483.648 do 2.147.483.647
podpisano dolgo notr4 bajti-2.147.483.648 do 2.147.483.647
nepredznačeno dolgo int4 bajti0 do 4.294.967.295
lebdi 4 bajti
dvojno 8 bajtov
dolga dvojna 10 bajtov

Int:

Cela števila so cela števila brez ulomkov ali decimalnih delov in int podatkovni tip se uporablja za njihovo predstavitev.

Pogosto se uporablja za spremenljivke, ki vključujejo vrednote , kot naprimer štetje, indeksi , ali druge številske številke. The int podatkovni tip lahko predstavlja oboje pozitivno in negativna števila ker je privzeto podpisan.

An int prevzame 4 bajti pomnilnika na večini naprav, kar mu omogoča shranjevanje vrednosti med okoli -2 milijardi in +2 milijardi.

znak:

Posamezni liki so predstavljeni z podatkovni tip char . Običajno se uporablja za držanje ASCII oz Znaki sheme kodiranja UTF-8 , kot naprimer črke, številke, simboli , oz vejice . obstajajo 256 znakov ki je lahko predstavljen z enim samim znakom, ki zavzame en bajt pomnilnika. Liki kot npr 'A', 'b', '5', oz '$' so v enojnih narekovajih.

Lebdeč:

Za predstavitev celih števil uporabite plavajoči podatkovni tip . Plavajoče številke se lahko uporabljajo za predstavitev ulomkov ali števil z decimalnimi mesti.

The plovni tip se običajno uporablja za spremenljivke, ki zahtevajo zelo dobro natančnost, vendar morda niso zelo natančne. Lahko shrani vrednosti z natančnostjo približno 6 decimalnih mest in obseg približno 3,4 x 1038 v 4 bajti spomina.

Madhubala

dvojno:

Za predstavitev uporabite dve vrsti podatkov dve plavajoči celi števili . Kadar je potrebna dodatna natančnost, na primer pri znanstvenih izračunih ali finančnih aplikacijah, zagotavlja večjo natančnost v primerjavi s float.

Dvojni tip , ki uporablja 8 bajtov pomnilnika in ima natančnost približno 15 decimalnih mest, daje večje vrednosti . C privzeto obravnava števila s plavajočo vejico kot podvojitve, če ni podanega eksplicitnega tipa.

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

V zgornjem primeru deklariramo štiri spremenljivke: an int spremenljivka glede na starost osebe, a char spremenljivka za oceno študenta, a spremenljivka float za odčitek temperature in dve spremenljivki za število pi.

Izpeljani podatkovni tip

Poleg temeljnih tipov podatkov C podpira tudi izpeljane vrste podatkov, vključno z nizi, kazalci, strukture, in sindikati . Ti tipi podatkov programerjem omogočajo, da obdelujejo heterogene podatke, neposredno spreminjajo pomnilnik in gradijo zapletene podatkovne strukture.

niz:

An array, izpeljani podatkovni tip , omogoča shranjevanje zaporedja elementi fiksne velikosti iste vrste. Zagotavlja mehanizem za združevanje več ciljev istih podatkov pod istim imenom.

Indeks se uporablja za dostop do elementov matrike z a 0 indeks za prvi vnos. Velikost matrike je ob času deklaracije fiksna in je ni mogoče spremeniti med izvajanjem programa. Komponente polja so nameščene v sosednjih pomnilniških regijah.

Tukaj je primer deklaracije in uporabe matrike:

 #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;>

Kazalec:

A kazalec je izpeljan podatkovni tip, ki spremlja pomnilniški naslov drugega podatkovnega tipa. Ko a kazalec je razglašeno, tip podatkov se nanaša na je navedeno najprej , nato pa še ime spremenljivke je pred zvezdica (*) .

Lahko imate nepravilen dostop in spremenite vrednost spremenljivke z uporabo kazalcev, tako da podate pomnilniški naslov spremenljivke. Kazalci se običajno uporabljajo v naloge kot naprimer funkcijski kazalci, podatkovne strukture , in dinamično dodeljevanje pomnilnika .

Tukaj je primer deklaracije in uporabe kazalca:

 #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; } 

Izhod:

 Value of num: 42 

Struktura:

Struktura je izpeljan podatkovni tip, ki omogoča ustvarjanje sestavljenih podatkovnih tipov tako, da omogoča združevanje številnih podatkovnih tipov pod enim imenom. Omogoča vam ustvarjanje lastnih edinstvenih podatkovnih struktur z združevanjem spremenljivk različnih vrst.

kako izklopiti razvijalski način android
  1. Člani ali polja strukture se uporabljajo za sklicevanje na vsako spremenljivko v njej.
  2. Vsak tip podatkov, vključno z različnimi strukturami, je lahko član strukture.
  3. Do članov strukture lahko dostopate z uporabo operatorja pika (.).

Tukaj je prikazana deklaracija in uporaba 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; } 

Izhod:

 Name: John Doe Age: 30 Height: 1.80 

Zveza:

Izpeljani podatkovni tip, imenovan a zveza omogoča shranjevanje različnih vrst podatkov na isti pomnilniški naslov. V nasprotju s strukturami, kjer ima vsak član ločen pomnilniški prostor, si vsi člani zveze delijo en pomnilniški prostor. Vrednost ima lahko v danem trenutku le en član sindikata. Ko morate izmenično predstavljati veliko tipov podatkov, pridejo unije prav. Tako kot do struktur lahko tudi do članov sindikata dostopate z uporabo pika (.) operater.

Tukaj je primer deklarirane in uporabljene unije:

 #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; } 

Izhod:

 Integer Value: 42 Float Value: 3.14 

Podatkovni tip naštevanja

Niz poimenovanih konstant oz popisovalci ki predstavljajo zbirko povezanih vrednosti, je mogoče definirati v C z uporabo naštevalni podatkovni tip (enum). Naštevanja vam daje sredstva za dajanje imen, ki so smiselna za skupino integralnih vrednosti, kar olajša branje in vzdrževanje vaše kode.

Tukaj je primer, kako definirati in uporabiti oštevilčenje v C:

jquery s klikom
 #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; } 

Izhod:

 Today is 2 

Prazen podatkovni tip

The prazni podatkovni tip v jeziku C se uporablja za označevanje pomanjkanja določene vrste. Funkcijski vrnjeni tipi, funkcijski parametri , in kazalci so tri situacije, v katerih se pogosto uporablja.

Vrnitev funkcije:

A vrnitev void type funkcija ne ustvari vrednosti. A prazna funkcija izvede nalogo ali dejanje in konča namesto vrnitve vrednosti.

primer:

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

Funkcijski parametri:

The prazen parameter lahko uporabite za označevanje, da funkcija ne sprejema argumentov.

primer:

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

Kazalci:

Kateri koli naslov je mogoče shraniti v kazalec tipa praznina* , zaradi česar je univerzalni kazalec. Ponuja metodo za delo s kazalci na dvoumne ali netipične tipe.

primer:

 void* dataPtr; 

The prazni podatkovni tip je v pomoč pri definiranju funkcij, ki ne sprejemajo nobenih argumentov pri delu z generičnimi kazalci ali ko želite sporočiti, da funkcija ne vrne vrednosti. Pomembno je omeniti, da medtem ko praznina* se lahko uporablja za izdelavo generičnih kazalcev, void samega ni mogoče deklarirati kot spremenljivko.

Tukaj je vzorec kode, ki prikazuje, kako uporabiti void v različnih situacijah:

 #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; } 

Izhod:

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

Zaključek:

Kot rezultat, vrste podatkov so bistvenega pomena v programskem jeziku C, ker definirajo vrste informacij, ki jih spremenljivke lahko vsebujejo. Zagotavljajo velikost in obliko podatkov, kar omogoča prevajalniku, da dodeli pomnilnik in izvede potrebna dejanja. Tipi podatkov, ki jih podpira C, vključujejo void, enumeration, derived , in osnovne vrste . Poleg vrst s plavajočo vejico, kot je lebdi in dvojno , osnovni tipi podatkov v C vključujejo tudi vrste, ki temeljijo na celih številih, kot je int, char , in kratek . Te oblike so lahko podpisan oz nepodpisan in nihajo v velikosti in obsegu. Za ustvarjanje zanesljive in učinkovite kode je ključnega pomena razumevanje velikosti pomnilnika in obsega teh vrst.

posodobitev iz join sql

Nekaj ​​primerov izpeljane vrste podatkov so sindikati, kazalci, strukture , in nizi . Več elementov iste vrste je mogoče shraniti skupaj v sosednji pomnilnik zaradi nizov. Kazalci spremljajte pomnilniške naslove, kar omogoča hitre operacije podatkovne strukture in dinamično dodeljevanje pomnilnika. Medtem sindikati omogočajo številnim spremenljivkam, da si delijo isti pomnilniški prostor, strukture združujejo ustrezne spremenljivke skupaj.

Koda postane bolj berljiv in ga je mogoče vzdrževati, ko so poimenovane konstante definirane z uporabo oštevilčenih podatkovnih tipov. Naštevanja dajte imenovanim konstantam celoštevilske vrednosti, da omogočite smiselno predstavitev povezanih podatkov. Podatkovni tip void označuje pomanjkanje določenega tipa. Uporablja se kot povratni tip za oba funkcije in parametri funkcije ki ne sprejmejo nobenih argumentov in ne vrnejo vrednosti. The praznina* kazalec deluje tudi kot splošni kazalec, ki lahko naslove trgovin različnih vrst.

Programiranje C zahteva dobro razumevanje vrste podatkov . Programerji lahko zagotovijo ustrezno dodelitev pomnilnika, izogibajte se prelivanje podatkov oz okrnitev , ter izboljšajo berljivost in vzdržljivost njihove kode z izbiro prave tip podatkov . Programerji C lahko ustvarijo učinkovit, zanesljiv , in dobro strukturirano kodo, ki izpolnjuje zahteve njihovih aplikacij z dobrim razumevanjem tipov podatkov.