logo

C'deki Veri Türleri

Veri türü, bir değişkenin depolayabileceği tam sayı, kayan nokta, karakter vb. gibi veri türünü belirtir.

C Veri Türleri

C dilinde aşağıdaki veri türleri bulunmaktadır.

TürlerVeri tipleri
Temel Veri Türüint, karakter, kayan nokta, çift
Türetilmiş Veri Türüdizi, işaretçi, yapı, birlik
Numaralandırma Veri TürüSıralama
Geçersiz Veri Türügeçersiz

Temel Veri Türleri

Temel veri türleri tamsayı tabanlı ve kayan nokta tabanlıdır. C dili hem imzalı hem de imzasız değişmezleri destekler.

Temel veri türlerinin bellek boyutu 32 veya 64 bit işletim sistemine göre değişiklik gösterebilir.

unix üst komutu

Temel veri türlerini görelim. Boyutu verilmiştir 32 bit mimariye göre .

Veri tipleriHafıza boyutuMenzil
karakter 1 bayt−128 ila 127
imzalı karakter1 bayt−128 ila 127
imzasız karakter1 bayt0 ila 255
kısa 2 bayt−32,768 ila 32,767
kısa imzalı2 bayt−32,768 ila 32,767
imzasız kısa2 bayt0 ila 65.535
int 2 bayt−32,768 ila 32,767
imzalanmış int2 bayt−32,768 ila 32,767
imzasız int2 bayt0 ila 65.535
kısa iç 2 bayt−32,768 ila 32,767
imzalı kısa int2 bayt−32,768 ila 32,767
imzasız kısa int2 bayt0 ila 65.535
uzun int 4 bayt-2,147,483,648'den 2,147,483,647'ye
uzun int imzalı4 bayt-2,147,483,648'den 2,147,483,647'ye
imzasız uzun int4 bayt0 ila 4.294.967.295
batmadan yüzmek 4 bayt
çift 8 bayt
uzun çift 10 bayt

Dahili:

Tamsayılar kesirli veya ondalık kısmı olmayan tam sayılardır ve int veri türü onları temsil etmek için kullanılır.

Aşağıdakileri içeren değişkenlere sıklıkla uygulanır: değerler , örneğin sayımlar, endeksler veya diğer sayısal sayılar. int veri türü her ikisini de temsil edebilir pozitif Ve negatif sayılar çünkü varsayılan olarak imzalanmıştır.

Bir int kadar sürer 4 bayt çoğu cihazda yaklaşık -2 milyar ile +2 milyar arasındaki değerleri saklamasına olanak tanıyan bellek.

Karakter:

Bireysel karakterler şu şekilde temsil edilir: karakter veri türü . Genellikle tutmak için kullanılır ASCII veya UTF-8 kodlama şeması karakterleri , örneğin harfler, sayılar, semboller , veya virgül . Var 256 karakter Bu, bir bayt hafızayı kaplayan tek bir karakterle temsil edilebilir. Gibi karakterler 'A', 'b', '5', veya '$' tek tırnak içine alınır.

Batmadan yüzmek:

Tam sayıları temsil etmek için şunu kullanın: kayan veri türü . Kayan sayılar, kesirli birimleri veya ondalık basamaklı sayıları temsil etmek için kullanılabilir.

şamandıra tipi genellikle çok iyi hassasiyet gerektiren ancak çok hassas olmayabilen değişkenler için kullanılır. Yaklaşık doğrulukla değerleri saklayabilir 6 ondalık basamak ve yaklaşık bir dizi 3,4x1038 içinde 4 bayt hafıza.

Çift:

Temsil etmek için iki veri türü kullanın iki kayan tamsayı . Bilimsel hesaplamalar veya finansal uygulamalar gibi ek hassasiyet gerektiğinde, kayan nokta ile karşılaştırıldığında daha fazla doğruluk sağlar.

Çift tip , kullanan 8 bayt hafızası vardır ve doğruluğu yaklaşık olarak 15 ondalık basamak, daha büyük değerler verir . Açık bir tür sağlanmadığı takdirde C, kayan nokta sayılarını varsayılan olarak çiftler olarak ele alır.

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

Yukarıdaki örnekte dört değişken tanımladık: bir int değişken kişinin yaşına göre bir karakter değişkeni öğrencinin notu için bir kayan değişken sıcaklık okuması için ve iki değişken için pi sayısı

Türetilmiş Veri Türü

Temel veri türlerinin ötesinde C ayrıca şunları da destekler: türetilmiş veri türleri, içermek diziler, işaretçiler, yapılar, Ve sendikalar . Bu veri türleri programcılara heterojen verileri işleme, belleği doğrudan değiştirme ve karmaşık veri yapıları oluşturma yeteneği verir.

Sıralamak:

Bir dizi, türetilmiş bir veri türü , bir diziyi saklamanızı sağlar sabit boyutlu elemanlar aynı türden. Aynı verinin birden fazla hedefini aynı ad altında birleştirmek için bir mekanizma sağlar.

İndeks dizinin elemanlarına erişmek için kullanılır. 0 dizin ilk giriş için. Dizinin boyutu bildirim zamanında sabittir ve programın yürütülmesi sırasında değiştirilemez. Dizi bileşenleri bitişik bellek bölgelerine yerleştirilir.

dize birleştirme

Bir diziyi bildirmeye ve kullanmaya bir örnek:

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

Işaretçi:

A Işaretçi başka bir veri türünün bellek adresini takip eden türetilmiş bir veri türüdür. Zaman Işaretçi beyan edilir, veri tipi şuna işaret ediyor ilk önce belirtildi ve ardından değişken ismi öncesinde gelir yıldız işareti (*) .

Değişkenin bellek adresini belirterek işaretçileri kullanarak yanlış erişime sahip olabilir ve değişkenin değerini değiştirebilirsiniz. İşaretçiler yaygın olarak kullanılır görevler örneğin işlev işaretçileri, veri yapıları , Ve dinamik bellek ayırma .

İşte bir işaretçiyi bildirme ve kullanma örneği:

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

Çıktı:

 Value of num: 42 

Yapı:

Yapı, birçok veri tipinin tek bir isim altında gruplandırılmasına imkan vererek bileşik veri tiplerinin oluşturulmasını sağlayan türetilmiş bir veri türüdür. Çeşitli türdeki değişkenleri bir araya getirerek kendi benzersiz veri yapılarınızı oluşturma yeteneği sağlar.

kaplan ile aslan arasındaki fark
  1. Bir yapının üyeleri veya alanları, içindeki her değişkene atıfta bulunmak için kullanılır.
  2. Farklı yapılar da dahil olmak üzere herhangi bir veri türü bir yapının üyesi olabilir.
  3. Bir yapının üyelerine nokta (.) operatörü kullanılarak erişilebilir.

Bir yapının beyanı ve kullanımı burada gösterilmektedir:

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

Çıktı:

 Name: John Doe Age: 30 Height: 1.80 

Birlik:

Türetilmiş bir veri türü olarak adlandırılan birlik çeşitli veri türlerini aynı bellek adresinde saklamanıza olanak tanır. Her üyenin ayrı bir hafıza alanına sahip olduğu yapıların aksine, bir birliğin üyelerinin tümü tek bir hafıza alanını paylaşır. Bir değer herhangi bir anda bir birliğin yalnızca bir üyesi tarafından tutulabilir. Birçok veri türünü birbirinin yerine kullanılabilir şekilde temsil etmeniz gerektiğinde, birleşimler kullanışlı olur. Yapılarda olduğu gibi, bir birliğin üyelerine aşağıdakileri kullanarak erişebilirsiniz: nokta (.) Şebeke.

Bildirilen ve kullanılan bir birliğin bir örneği:

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

Çıktı:

 Integer Value: 42 Float Value: 3.14 

Numaralandırma Veri Türü

Bir dizi adlandırılmış sabit veya sayım görevlileri Birbirine bağlı değerlerin bir koleksiyonunu temsil eden değerler C'de şu şekilde tanımlanabilir: numaralandırma veri türü (enum). Numaralandırmalar size, bir grup integral değere anlamlı adlar vermenin yollarını verir, bu da kodunuzun okunmasını ve bakımını kolaylaştırır.

C'de bir numaralandırmanın nasıl tanımlanacağına ve kullanılacağına dair bir örnek:

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

Çıktı:

 Today is 2 

Geçersiz Veri Türü

geçersiz veri türü C dilinde belirli bir türün eksikliğini belirtmek için kullanılır. Fonksiyon dönüş türleri, fonksiyon parametreleri , Ve işaretçiler sıklıkla kullanıldığı üç durumdur.

İşlev Dönüş Türü:

A geçersiz dönüş türü fonksiyon bir değer üretmez. A geçersiz işlev bir görevi veya eylemi yürütür ve bir değer döndürmek yerine sona erer.

java uyku

Örnek:

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

Fonksiyon Parametreleri:

parametre geçersiz Bir fonksiyonun hiçbir argüman kabul etmediğini belirtmek için kullanılabilir.

Örnek:

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

İşaretçiler:

Herhangi bir adres, bir işaretçi türünde saklanabilir geçersiz* , onu evrensel bir işaretçi haline getirir. Belirsiz veya atipik türlere yönelik işaretçilerle çalışmak için bir yöntem sunar.

Örnek:

 void* dataPtr; 

geçersiz veri türü genel işaretçilerle çalışırken veya bir işlevin değer döndürmediğini belirtmek istediğinizde herhangi bir argüman kabul etmeyen işlevleri tanımlamak için yararlıdır. Şunu belirtmek önemlidir: geçersiz* genel işaretçiler oluşturmak için kullanılabilir, void'in kendisi değişken türü olarak bildirilemez.

HTML etiketleri

Çeşitli durumlarda void'in nasıl kullanılacağını gösteren bir kod örneği aşağıda verilmiştir:

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

Çıktı:

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

Çözüm:

Sonuç olarak, veri tipleri değişkenlerin tutabileceği bilgi türlerini tanımladıkları için C programlama dilinde önemlidir. Verinin boyutunu ve formatını sağlayarak derleyicinin hafızayı ayırmasına ve gerekli eylemleri gerçekleştirmesine olanak tanır. C tarafından desteklenen veri türleri şunları içerir: geçersiz, numaralandırma, türetilmiş , Ve Temel tipler . Gibi kayan nokta türlerine ek olarak batmadan yüzmek Ve çift C'deki temel veri türleri aynı zamanda aşağıdaki gibi tam sayıya dayalı türleri de içerir: int, karakter , Ve kısa . Bu formlar olabilir imzalanmış veya imzasız ve boyut ve aralık bakımından dalgalanırlar. Güvenilir ve verimli kod oluşturmak için bu türlerin bellek boyutunu ve kapsamını anlamak çok önemlidir.

Birkaç örnek türetilmiş veri türleri öyle sendikalar, işaretçiler, yapılar , Ve diziler . Diziler sayesinde aynı türden birden fazla öğe bitişik bellekte bir arada saklanabilir. İşaretçiler Bellek adreslerini takip ederek hızlı veri yapısı işlemlerine ve dinamik bellek tahsisine olanak tanır. Sırasında sendikalar Çok sayıda değişkenin aynı bellek alanını paylaşmasına izin veren yapılar, ilgili değişkenleri bir arada gruplandırır.

Kod adlandırılmış sabitler numaralandırma veri türleri kullanılarak tanımlandığında daha okunaklı ve bakımı kolay hale gelir. Numaralandırmalar İlgili verilerin anlamlı temsilini sağlamak için adlandırılmış sabitlere tam sayı değerleri verin. Geçersiz veri türü, belirli bir türün bulunmadığını gösterir. Her ikisi için de dönüş türü olarak kullanılır işlevler Ve fonksiyon parametreleri herhangi bir argüman almaz ve bir değer döndürmez. geçersiz* işaretçi aynı zamanda genel bir işaretçi olarak da işlev görür. mağaza adresleri çeşitli türlerde.

C programlama sağlam bir anlayış gerektirir veri tipleri . Programcılar yeterli bellek tahsisini sağlayabilir, veri taşması veya kesme ve doğru seçeneği seçerek kodlarının okunabilirliğini ve sürdürülebilirliğini geliştirin. veri tipi . C programcıları oluşturabilir etkili, güvenilir ve veri türlerine ilişkin sağlam bir anlayışa sahip olarak uygulamalarının gereksinimlerini karşılayan iyi yapılandırılmış kod.